Как правильно перенаправить маршрутизатор React? - PullRequest
0 голосов
/ 04 мая 2018

Я застрял с одной проблемой. Когда я хочу сделать Redirect, я получаю эту ошибку
You tried to redirect to the same route you're currently on: "/"
Мой App.js файл выглядит так

render() {
    const { auth } = this.props;
    if (!auth.isAuthentificated) {
      return <Redirect to="/" />;
    }
      
    return (
      ...
      <Switch>
        <Route path="/welcome" component={Welcome} />
        <Route path="/user-info" component={UserInfo} />
        <Route path="/" component={LoginPage} />
      </Switch>
    );
  }

Если мой код был неясен для вас - помогите мне с любым советом. Как я могу перенаправить пользователей с любых маршрутов на LoginPage компонент, если !auth.isAuthentificated === true
Я использую react-router 4.2.0,

1 Ответ

0 голосов
/ 04 мая 2018

Вы должны убедиться, что вы не уже на этом пути, прежде чем перенаправить на него:

import {withRouter} from 'react-router-dom';

// ...

render() {
    const { auth } = this.props;
    const {pathname} = this.props.location;

    if (!auth.isAuthentificated && pathName !== '/') {
        return <Redirect to="/" />;
    }

    return (
        ...
        <Switch>
            <Route path="/welcome" component={Welcome} />
            <Route path="/user-info" component={UserInfo} />
            <Route path="/" component={LoginPage} />
        </Switch>
    );
}
...