react-router four不会让我重定向回家?

时间:2018-03-07 22:26:10

标签: reactjs react-router-v4

我使用react-router 4:

    <Route exact path="/" children={({match}) => (
      <TransitionGroup component={firstChild}>
        {match && <Home match={match} />}
      </TransitionGroup>
    )}/>
    <Route exact path="/idea/:id" children={({match}) => (
      <TransitionGroup component={firstChild}>
        {match && <IdeaDetails match={match} />}
      </TransitionGroup>
    )}/>
    <Redirect from='*' to='/' />

基本上如果有人输入idea/:id以外的网址,我想将它们重定向回主页。当我运行此代码时,我似乎期待。除了在开发人员控制台中,我看到了这个警告

  

警告:您尝试重定向到您当前所在的路线:   “/”

有没有办法定义我没有绊倒此警告的路线?有没有办法告诉反应路由器一旦找到其中一个后没有处理任何后续路由规则?

1 个答案:

答案 0 :(得分:1)

  

有没有办法让反应路由器在找到其中一条路由规则后不处理任何后续路由规则?

是的,您需要将路线包裹在Switch component中。当您的路线包裹在Switch中时,它会找到第一条匹配路线,然后在不继续的情况下返回。如果没有Switch,路由器将返回与当前URL匹配的所有路由。