我正在尝试使用react,redux和react-router-redux构建的应用程序。它的构建使得页眉和页脚 - 反应组件 - 在路径中定义的实际页面“外部”。例如,这就是<App/>
的样子:
<Provider store={store}>
<ConnectedRouter history={history}>
<div>
<header/>
{routes_for_pages}
<footer/>
</div>
</ConnectedRouter>
</Provider>
在其中一个路由上,它们是一个调度操作的组件,并且根据返回的结果,需要使用适当的内容更新页眉和页脚。
如何在该特定组件中发送调度同时向页眉和页脚发送操作?我看到的问题是组件(页面组件,页眉组件和页脚组件)彼此不了解,它们是作为兄弟组成的。
任何帮助表示赞赏。 TIA。
答案 0 :(得分:1)
无需从多个组件调度操作。 相反,你应该有多个reducer,每个reducers根据调度的动作做不同的事情。
如果您使用redux-saga
,则此代码可以更清晰。
你抓住了一个传奇中的初始动作,并让传奇进一步发出一系列应该连续或一起发生的动作。
E.g:
// saga handler
function* mySaga(action) {
yield put('DO_SOMETHING'); // dispatches DO_SOMETHING
yield put('UPDATE_HEADER'); // ...
yield put('UPDATE_FOOTER'); // ...
}
function mySagaWatcher(
takeLatest,
'SOMETHING_TRIGGERED_THIS_ACTION',
mySaga
);