如果网址无效,如何重定向到主页?

时间:2018-11-19 13:00:17

标签: reactjs redirect react-router url-redirection react-router-v4

我正在使用React和React-router v4

这是我的路线组成部分:

<Switch>
              {/* <Route path='/blog' exact component={Blog} /> */}
              <Route path='/projects/:id' component={ProjectDetails} />
              <Route path='/career/:id' component={CareerDetails} />
              <Route path='/' component={withScrollPreservation(LandingPage)} />
              <Route component={withScrollPreservation(LandingPage)} />
            </Switch>

我的问题是什么

如果用户在路由中输入了无效的内容,我希望它重定向到主页。考虑这种在本地运行的场景:

localhost:4000/-主页

localhiost:4000/invalidurl-应该重定向回localhost:4000/并从网址中删除无效网址

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

您可以使用

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

并将此路由添加到交换机内:

<Route render={() => <Redirect to={{pathname: "/"}} />} />

它将捕获任何没有路线的东西。

答案 1 :(得分:1)

如果您要在键入无效的路径字符串时重定向主页,以便遵循此代码。...

<Switch>
   <Route exact path="/" component={Home} />
   <Route path="/login" component={Login} />
   <Route path="/signup" component={Signup} />
   <Route path="/user" component={User} onEnter={this.requireAuth}/>
   <Route path="*" component={Home} />
</Switch>

在这里,我在路径中使用*表示如果路径字符串类型无效,那么它将自动重定向到首页。