我在React项目中使用DVA JS框架(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,
});
有没有办法重置这些配置中的状态?
最佳答案
您如何注销?使用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
};
},
}