我按照这个SurviveJS精彩指南制作了一个看板应用程序,开始了我的第一个反应应用程序。这涉及altjs作为助焊剂技术,非常简单易用。
作者建议使用AltContainer将商店链接到组件,这是一个简单的解决方案,可以将您的App组件(根组件)转换为以下内容:
/* ... */
export default class App extends React.Component {
render = () => {
return (
<div>
<AltContainer
stores={[MyStoreOne]}
inject={{
myProps: () => MyStoreOne.getState().myProps
}}
>
<ComponentOne/>
</AltContainer>
<AltContainer
stores={[MyStoreTwo]}
inject={{
myProps: () => MyStoreTwo.getState().myProps
}}
>
<ComponentTwo/>
</AltContainer>
</div>
);
}
}
现在的问题是:当我使用反应路由器时,考虑采用nested routes方法,让AltContainers使用其链接组件的最佳方法是什么?
/* ... */
import { Router, Route, browserHistory } from 'react-router';
import App from './components/App';
ReactDOM.render((
<Router history={browserHistory}>
<Route path="/" component={App}>
<Route path="/one/:paramOne" component={ComponentOne}/>
<Route path="/two/:paramTwo" component={ComponentTwo}/>
</Route>
</Router>
), document.getElementById('knots'));
我必须放置AltContainers,现在直接从路由器调用组件(而不是从应用程序调用)?
直接在子组件内部移动磁通逻辑(因此避免使用AltContainers)是反模式的吗?