React Redux Actions文件中的重定向401错误

时间:2019-05-30 23:01:20

标签: reactjs redux

因此,如果服务器基于我建立的用户身份验证后端以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')
        );
}

非常感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

我认为问题是您的箭头功能。您直接使用=>即可返回您的派遣信息,但永远不会触及您的历史记录。

.catch(err => {dispatch({                 类型:SCORE_NOT_FOUND,                 有效负载:err.response.data             })             返回history.push('/未授权')         )} 希望对您有所帮助。 顺便说一句,我认为在这种情况下,最好使用history.replace。