我应该在React(和Redux)中执行操作(重定向或添加/删除localstorage中的内容)?因此,在密码成功更新后,我想将用户重定向到另一个页面。我应该在调度方法之后重定向,我应该在组件中执行还是有其他选项?
示例动作:
export function updateAccountPassword(encryptedPassword) {
return dispatch => {
axios.post(API_URL + '/account/recovery/update', {
_id: getSignedInUserID(),
password: encryptedPassword
}).then(() => {
dispatch(updateUserPasswordSuccess())
}).catch(() => {
dispatch(updateUserPasswordFailError());
})
}
}
function updateUserPasswordSuccess() {
return({
type: RECOVERY_UPDATE_SUCCESS
})
}
function updateUserPasswordFailError() {
return({
type: RECOVERY_UPDATE_FAIL_ERROR,
payload: 'Something went wrong, please try again'
})
}
答案 0 :(得分:1)
我这样做的方法是将this.props.history.push
作为回调传递给动作创建者,并按照你的建议,在发送后在动作创建者中调用它。
以下是我的代码中的示例:
在组件表单的提交中,调用操作创建者:
this.props.ACTION_CREATOR(formPayload, () => {
this.props.history.push(`ROUTING_TARGET`);
});
然后,在动作创建者中,当满足适当的条件时,调用回调(重新路由)。