Ошибка Redirect 401 в файле React Redux Actions - PullRequest
0 голосов
/ 31 мая 2019

Таким образом, я пытаюсь перенаправить пользователя, если сервер отвечает 401 Несанкционированным ответом на основе установленного мной бэкэнда аутентификации пользователя. В настоящее время я отправляю запрос на сервер, чтобы проверить, совпадает ли пользователь с элементом, с которым я проверяю. Если они не совпадают, возвращается 401 несанкционированный ответ. Но я не могу правильно перенаправить их в свой оператор .catch (err) в файле действий.

Я пробовал несколько разных решений, поиски в стеке, поиски в Google, учебные пособия и до сих пор не могу получить желаемые результаты. Я также пытался установить различные пакеты безрезультатно.

Вот мой файл действий. .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')
        );
}

Любая помощь очень ценится.

1 Ответ

0 голосов
/ 31 мая 2019

Я думаю, что проблема в вашей функции стрелки.вы используете => напрямую, что будет возвращать вашу отправку, но никогда не трогать ваш history.push

.catch (err => {dispatch ({type: SCORE_NOT_FOUND, payload: err.response.data}) возвращать history.push('/ не авторизован'))} Надеюсь, что это поможет.Кстати, лучше использовать history.replace в этом случае, на мой взгляд

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...