因此,如果服务器基于我建立的用户身份验证后端以401未经授权的响应进行响应,则我将尝试重定向用户。目前,我正在向服务器发送请求,以检查用户是否与我要检查的项目匹配。如果它们不匹配,则返回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')
);
}
非常感谢您的帮助。
答案 0 :(得分:0)
我认为问题是您的箭头功能。您直接使用=>即可返回您的派遣信息,但永远不会触及您的历史记录。
.catch(err => {dispatch({ 类型:SCORE_NOT_FOUND, 有效负载:err.response.data }) 返回history.push('/未授权') )} 希望对您有所帮助。 顺便说一句,我认为在这种情况下,最好使用history.replace。