通过发送重置其他减速机的状态?

时间:2018-03-24 08:59:28

标签: javascript reactjs redux

对于注销我必须重置所有内容,但是我有许多减速器也称为状态集合,我必须在每个减速器中执行switch(type.LOGOUT): return {}以便将所有内容重置为initialState?

export default combineReducers({
    user,
    tickets,
    settings,
    manyMoreToCome
})

1 个答案:

答案 0 :(得分:2)

您的应用的initialState应该是{},它是您在创建商店时传递的价值。

如果您正在实现某种本地状态持久性,这也称为preloadedState ...

因此,您通常不想破坏任何内容并将状态设置为空对象,而应该执行以下操作:

// initialState should be exported somewhere in your application
// when the store is created, and imported in the reducer.
switch(action.TYPE){
    case types.LOGOUT:
    return { ...initialState };
}

非常重要的是你不应该在减速器中执行任何操作 combineReducers调用具有当前状态的所有减速器,每个减速器将如果不需要更改,则按原样返回状态,因此type.LOGOUT操作应仅在相关的reducer上,usersettings,具体取决于应用程序