Phi*_*eng 4 reactjs react-router redux-saga
用例:
用户订阅后,我想导航到另一个页面,通知用户验证他们的电子邮件。
try {
const request = yield call(subcribe, action.payload.data)
yield put({ type: SUBSCRIBE_SUCCESS, payload: request.data })
yield put(showNotification(NOTIFICATION_SUCCESS, 'Please check your email.'))
} catch(e) {
...
}
Run Code Online (Sandbox Code Playgroud)
有没有办法导航到成功页面,即/subscribe-success一旦我收到服务器的成功响应?
如果您从服务器收到成功响应,您应该将您的 redux 状态更改为类似 subsribeSuccess : true 的内容。这样您就有机会在组件的 componentWillReceiveProps(nextProps) 中检查此状态并执行 browserHistory.push('subscribe-success')。
这是一个例子:
假设您已将您的 redux 状态从 reducer 更改为 {...state, subscribeSuccess : true},当您的 reducer 获得 SUBSCRIBE_SUCCESS 操作类型时。
在您的反应组件上:
componentWillReceiveProps(nextProps){
if(myConnectedReduxState.subscribeSuccess){
browserHistory.push('subscribe-success');
}
}
Run Code Online (Sandbox Code Playgroud)
所以据我所知,你的问题与传奇无关。你可以在你的 react-redux 项目中的任何地方实现这个逻辑。
| 归档时间: |
|
| 查看次数: |
2100 次 |
| 最近记录: |