因此,如果服务器根据我建立的用户身份验证后端响应401 Unauthorized响应,我会尝试重定向用户。目前,我正在向服务器发送一个请求,以检查用户是否与我正在检查的项目匹配。如果它们不匹配,则返回401未经授权的响应。但是我不能在我的操作文件的.catch(err)语句中正确地重定向它们。
我尝试了几种不同的解决方案,stackoverflow搜索,google搜索,教程,但仍然得不到我想要的结果。我也尝试过安装不同的包,但都无济于事。
这是我的操作文件。如果返回401错误,我希望将用户重定向到.catch(err)。
// Get Single Score
export const getScore = (id, history) => dispatch => {
dispatch(setScoreLoading());
axios
.get(`score/${id}`)
.then(res =>
dispatch({
type: GET_SCORE,
payload: res.data
})
)
.catch(err =>
dispatch({
type: SCORE_NOT_FOUND,
payload: err.response.data
})
history.push('/not-authorized')
);
}
任何帮助都是非常感谢的。
发布于 2019-05-31 07:19:52
我想问题出在你的箭头函数上。您可以直接使用=>,它将返回您的派单,但永远不会接触您的history.push
.catch(err => {dispatch({ type: SCORE_NOT_FOUND,payload: err.response.data }) return history.push('/not-authorized') )}希望获得此帮助。顺便说一句,在我看来,在这种情况下使用history.replace更好
https://stackoverflow.com/questions/56386680
复制相似问题