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

Ros*_*yba 4 redirect url-redirection reactjs react-router 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>
Run Code Online (Sandbox Code Playgroud)

我的问题是什么:

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

localhost:4000/ - 主页

localhiost:4000/invalidurl- 应该重定向回localhost:4000/并从 url 中删除 invalidurl

有什么想法吗?

cha*_*212 10

您可以使用

import { Redirect } from 'react-router-dom';
Run Code Online (Sandbox Code Playgroud)

并将此路由添加到您的交换机中:

<Route render={() => <Redirect to={{pathname: "/"}} />} />
Run Code Online (Sandbox Code Playgroud)

它会捕捉任何没有路线的东西。


Nee*_*tel 7

如果您想在输入无效路径字符串时重定向主页,请遵循此代码......

<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>
Run Code Online (Sandbox Code Playgroud)

这里我在路径中使用了 * ,这意味着如果路径字符串类型无效,那么它会自动重定向到主页。