我在React项目中使用DVA JS Framework(https://github.com/dvajs/dva) 我在此网络应用程序中有登录/注销功能。
问题:
当我退出时,状态保持不变。我需要在不刷新页面的情况下重置整个状态。
有没有办法在DVA Framework中实现?
在DVA文档(https://github.com/dvajs/dva/blob/master/docs/API.md)中,有很多方法可以访问应用中的不同内容。
const app = dva({
initialState,
onAction,
onStateChange,
onReducer,
onEffect,
});
有没有办法重置这些配置中的状态?
答案 0 :(得分:1)
你是如何退出的?使用dva你需要使用模型来做到这一点,以便触发"效果"传奇。然后,您可以触发状态更改以重置所需的值。例如:
...
effects {
*logout({ payload }, { call, put }) {
const confirmation = yield call(logout, {});
if (confirmation.success) {
yield put({ type: 'resetToDefaults' });
} else {
throw (confirmation);
}
},
},
reducers {
resetToDefaults(state) {
return {
...state,
//Modify your required entries to the default values
};
},
}
答案 1 :(得分:0)
我使用2状态,第一个是我的实际状态,第二个是当我调用resetToDefaults时将执行的defaultState。