【发布时间】:2016-10-21 00:48:10
【问题描述】:
我一直试图弄清楚这一点,但我越来越困惑。
我想在每次离开或更改路线时重置/更改 Redux 状态。我使用 react-router-redux 和 history.listener 在每次路由更改时调度一个动作
history.listen(location => store.dispatch(resetManualsCategory()));
动作创建者:
export function resetManualsCategory() {
return {
type: 'RESET_MANUALS_CATEGORY'
}
}
减速器
export function manualCategories(state=[], action) {
switch (action.type) {
case 'SELECT_MANUALS_CATEGORY':
[...]
case 'RESET_MANUALS_CATEGORY':
console.log('test reducer');
return Object.assign({}, state, {
manualCategory: 'test'
})
default:
return state
}
}
最让我困惑的是,如果我刷新页面或在顶部导航中单击两次路由,状态会更新,但是即使动作和减速器触发,单个路由更改也不会影响 redux 状态(显示控制台中的测试消息)。
我做错了什么,这里到底发生了什么?
【问题讨论】:
标签: reactjs redux react-router-redux