React DVA JS Framework:重置整个状态应用程序
问题描述:
我在React Project中使用DVA JS Framework(https://github.com/dvajs/dva)。
我有这个网络应用程序的登录/注销功能。React DVA JS Framework:重置整个状态应用程序
问题:
当我注销时,状态保持不变。我需要重置整个状态而不刷新页面。
有没有办法在DVA框架中做到这一点?
在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
};
},
}
答
我使用2个状态,第一个是我的实际状态,第二个是当我调用resetToDefaults时将执行的defaultState。