React DVA JS Framework:重置整个状态应用程序

时间:2017-10-05 13:45:54

标签: javascript reactjs redux antd

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

有没有办法重置这些配置中的状态?

2 个答案:

答案 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。