您需要在您的应用程序中编写一个根化约简器,将处理操作委托给由生成的约简器combineReducers()。
例如,让我们采取行动rootReducer()后返回初始状态USER_LOGOUT。众所周知,无论以什么方式进行操作,都应将reducer undefined作为第一个参数调用时返回初始状态。
const appReducer = combineReducers({
/* your app's top-level reducers */
})
const rootReducer = (state, action) => {
if (action.type === 'USER_LOGOUT') {
state = undefined
}
return appReducer(state, action)
}
如果使用redux-persist,则可能还需要清洁存储设备。redux-persist将状态的副本保存在存储引擎中。首先,您需要导入适当的存储引擎,然后在将状态设置为undefined之前解析状态,并清除每个存储状态键。
const appReducer = combineReducers({
/* your app's top-level reducers */
})
const rootReducer = (state, action) => {
if (action.type === 'USER_LOGOUT') {
Object.keys(state).forEach(key => {
storage.removeItem(`persist:${key}`)
})
state = undefined
}
return appReducer(state, action)
}
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。