对于注销我必须重置所有内容,但是我有许多减速器也称为状态集合,我必须在每个减速器中执行switch(type.LOGOUT): return {}
以便将所有内容重置为initialState?
export default combineReducers({
user,
tickets,
settings,
manyMoreToCome
})
答案 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上,user
或settings
,具体取决于应用程序