Перенаправление с состоянием, не работающим в React Router 4.x - PullRequest
0 голосов
/ 11 июня 2018

У меня просто нет идеи, почему следующее состояние на моем перенаправлении не может быть получено в целевом компоненте.

Это маршруты:

{
        path: '/logout',
        component: () => <Redirect to={{
            pathname: '/login',
            state: {referrer: "logout"}
        }}/>
},
{       path     : '/login',
        component: Login
}

И в компоненте входа в систему (получатель пути / login), я просто проверяю объект состояния, который всегда undefined :

componentDidUpdate(prevProps, prevState) {

        if(this.props.location.state !== undefined) {
            alert("i come from logout");
        }
}

Конечно, мой компонент Login обернут HOC withRouter ().Я использую React-Router-Conf хотя.Не знаю, относится ли это к этому.

У кого-нибудь есть хорошая идея по этому поводу?

Возможно, я мог бы выбрать обходной путь, проверив историю location.history и выяснил, иду ли я из выхода из системы, помещен ли он в историю для перенаправления, но я бы лучше понял, почему это состояние не работает.

спасибо

1 Ответ

0 голосов
/ 11 июня 2018

Поскольку /login - это другой Маршрут, необходимо иметь метод жизненного цикла componentDidMount и not in componentDidUpdate, так как Маршрут будет смонтирован и не будет повторно отображаться

componentDidMount() {

        if(this.props.location.state !== undefined) {
            alert("i come from logout");
        }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...