如何正确使用React路由器重定向?

时间:2018-05-03 22:41:55

标签: javascript reactjs redirect redux react-router

我遇到了一个问题。 当我想要重定向时,我收到此错误 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
,如何将用户从任何Routs重定向到!auth.isAuthentificated === true组件 我正在使用react-router 4.2.0,

1 个答案:

答案 0 :(得分:3)

在重定向到该路径之前,您需要验证您是否

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>
    );
}