因此,如果服务器根据我建立的用户身份验证后端以 401 未经授权的响应响应响应,我将尝试重定向用户。目前,我正在向服务器发送请求,以检查用户是否与我正在检查的项目匹配。如果它们不匹配,则返回 401 未授权响应。但是我无法在我的操作文件的 .catch(err( 语句中正确重定向它们。
我已经尝试了几种不同的解决方案,堆栈溢出搜索,谷歌搜索,教程,但仍然无法获得我想要的结果。我也尝试安装不同的软件包无济于事。
这是我的操作文件。.catch(err( 是我想在返回 401 错误时将用户重定向到的地方。
// 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')
);
}
任何帮助将不胜感激。
我认为问题是你的箭头函数. 你直接使用 => 它会返回你的调度,但永远不会触及你的历史记录。
.catch(err => {dispatch({ 类型: SCORE_NOT_FOUND, payload: err.response.data }) 返回 history.push('/not-authorized'( )}希望这有帮助。顺便说一句,在我看来,在这种情况下使用历史.替换更好