2017-10-05 454 views
0

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

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

回答

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 
    }; 
    }, 
} 
0

我使用2个状态,第一个是我的实际状态,第二个是当我调用resetToDefaults时将执行的defaultState。