Каков правильный шаблон для проекта Altjs + ReactRouter?
Я запустил свое первое приложение реагирования, следуя этому блестящему руководству SurviveJS по разработке приложения для канбана. Это включает в себя altjs как технологию потока, действительно простую в использовании.
Автор предлагает использовать AltContainer для связи магазинов с компонентами, это простое решение, которое превратит ваш компонент приложения (корневой) в нечто вроде этого:
/* ... */
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>
);
}
}
Теперь возникает вопрос: когда я использую реагирующий маршрутизатор, как лучше всего разрешить 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) является антипаттерном?