@m_frost

React-router Redirect предыдущая локация ??

Eсть редирект с страницы товара для незалогиненого пользователя на страницу логина мне нужно возвращаться его на страницу товара после логина, мне нужны пропсы предыдущей локации чтобы если это локация товара то делать history.goBack() а иначе history.push(home). Знаю в линках можно так делать но в редиректе не не нашел.
  • Вопрос задан
  • 1271 просмотр
Решения вопроса 1
rockon404
@rockon404 Куратор тега React
Frontend Developer
Редирект:
<Redirect
  to={{
    pathname: '/login',
    state: { referrer: props.history.location.pathname }, // или `/products/${slug}`
  }}
/>


Логин:
class Login extends React.Component {
  onLoginSuccess() {
    const { history } = this.props;
    const { state } = history.location;
    const location = (state && state.referrer) || '/';

    history.push(location);
  }

  /* ... *.
}

Помимо ссылки на прошлую страницу в state можно писать ее скролл и по возвращению восстанавливать и его.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы