我在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
    };
  },
}

10-06 04:54