我有一个redux存储,其中已使用CombineReducers定义了所有应用程序。我要实现的是,我要在用户注销时将除一个状态以外的所有状态重设为未定义。 下面的示例工作正常,但是如果我有8个以上的状态,我将得到长长的代码。有什么方法可以简化此过程,也许可以遍历appReducers?
const appReducer = combineReducers({
num1,
num2,
num3,
num4,
...createForms({})
});
const rootReducer = (state, action) => {
if (action.type === 'LOGOUT') {
delete state.num1;
delete state.num2;
delete state.num3;
}
return appReducer(state, action) // this will always return num4 state.
}
答案 0 :(得分:1)
每次在redux中修改状态时,它将返回新的状态对象, 因此,如果您想清除所有状态,则只需
if (action.type === 'RESET') {
return undefined
}
如果您只想使用键“ persist”坚持状态
您只需返回
if (action.type === 'LOGOUT') {
return { num4: state.num4 }
}