我有两个Reducer,一个用于身份验证,第二个用于获取一些数据列表。 当我从应用程序注销时,我的身份验证减少器会重新初始化但我不知道如何在退出时重新初始化我的第二个减速器。
这是我的减速机代码:
export default combineReducers({
auth: AuthReducer,
patientReducer: PatientReducer,
});
然后在app.js中导入我的reducer:
import reducers from './reducers';
class App extends Component {
render() {
const store = createStore(reducers,{},applyMiddleware(ReduxThunk));
return (
<Provider store={store}>
<RouterComponent />
</Provider>
);
}
}
export default App;
请告诉我如何发出注销操作,以便我的两个减速器重新初始化/清空。
因为每当我退出然后从另一个帐户登录时,该应用程序首先会呈现上一个用户的数据列表,因为我的第二个reducer(patientReducer)在退出时没有重新初始化/清空然后重新呈现当前登录用户的数据列表。
答案 0 :(得分:0)
您可以将INITIAL_STATE
包含所有属性为空/ null。当用户注销时,您可以调用一个动作,该动作会发送由您所需的所有减速器处理的type
。在您的Reducer中,您将返回...INITIAL_STATE
。
只是解释一些问题: 每次发送一个Action时,所有Reducers都会收到该调度。但是,只有处理相同类型的Reducers才会返回您想要的代码。 由于您想要清除许多减速器,您可以在所有减速器上共享相同的类型,因此所有减速器都能够处理单个动作调度。
希望它有所帮助。