【问题标题】:Is there a way to define default route (if no one match) in react-router-redux@5.0.0有没有办法在 react-router-redux@5.0.0 中定义默认路由(如果没有匹配)
【发布时间】:2018-09-16 08:50:55
【问题描述】:

我正在使用 react-router-redux@5.0.0

我有这个

<Route path='/login' component={ Login } />
<Route exact path='/' component={ Home } />

有没有办法像 react-router-redux@4.x.x 那样定义默认路由?

如果有其他匹配,这条“默认路由”也必须不通过。

因为如果我会添加

<Route path='/login' component={ Login } />
<Route exact path='/' component={ Home } />
<Route component={ Default } />

将为所有路由呈现默认组件,包括'/login'和'/'

【问题讨论】:

  • 是的。如果不设置路径,它会起作用。

标签: react-router react-router-redux


【解决方案1】:

我正在寻找相同问题的答案,但要寻找 react-router-dom 包。解决方案是这样的:

<Switch>
  <Route path='/login' component={ Login } />
  <Route exact path='/' component={ Home } />
  <Route component={ Default } />
</Switch>

这样,第一个匹配的 Route 将被显示,而其余的将被忽略。

您可以像这样将SwitchRoute 一起导入:

import { BrowserRouter, Switch, Route } from 'react-router-dom';

【讨论】:

    【解决方案2】:

    在定义所有其他路线后放置以下全能路线(可选地如下所述保留路径):

    <Route path="*" component={DefaultRoute} />
    

    这是一个包含更多详细信息的答案的链接:React-Router: No Not Found Route?

    【讨论】:

    • catch all route 将与匹配的路由一起显示
    【解决方案3】:

    使用最新的 react-router 版本,

    &lt;Route path='' Componenet={Default}&gt;

    应该改为,

    &lt;Route path='' element={&lt;Default&gt;}&gt;

    【讨论】:

    • 您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center
    猜你喜欢
    • 2022-01-23
    • 2020-01-10
    • 2012-02-15
    • 1970-01-01
    • 2020-08-23
    • 2016-09-02
    • 2020-02-03
    • 1970-01-01
    • 2012-05-07
    相关资源
    最近更新 更多