我一直试图弄清楚这一点,我越来越困惑。
每次离开或更改路线时,我都想重置/更改 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 状态(在控制台)。
我做错了什么,这里到底发生了什么?