用例:
用户订阅后我想导航到另一个页面,通知用户验证他们的电子邮件。
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) {
...
}
有没有办法在我收到服务器的成功回复后导航到成功页面,/subscribe-success
?
答案 0 :(得分:4)
如果从服务器获得成功响应,则应将redux状态更改为subsribeSuccess:true。这样您就有机会在组件的componentWillReceiveProps(nextProps)中检查此状态,并执行browserHistory.push(' subscribe-success')。
以下是一个例子:
当您的reducer获得SUBSCRIBE_SUCCESS操作类型时,假设您已从reducer将redux状态更改为{... state,subscribeSuccess:true}。
在您的反应组件上:
componentWillReceiveProps(nextProps){
if(myConnectedReduxState.subscribeSuccess){
browserHistory.push('subscribe-success');
}
}
据我所知,你的问题与传奇无关。您可以在react-redux项目中的任何位置实现此逻辑。