有没有办法在 react-router-redux@5.0.0 中定义默认路由(如果没有匹配)
Posted
技术标签:
【中文标题】有没有办法在 react-router-redux@5.0.0 中定义默认路由(如果没有匹配)【英文标题】:Is there a way to define default route (if no one match) in 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'和'/'
【问题讨论】:
是的。如果不设置路径,它会起作用。 【参考方案1】:我正在寻找相同问题的答案,但要寻找 react-router-dom
包。解决方案是这样的:
<Switch>
<Route path='/login' component= Login />
<Route exact path='/' component= Home />
<Route component= Default />
</Switch>
这样,第一个匹配的 Route 将被显示,而其余的将被忽略。
您可以像这样将Switch
和Route
一起导入:
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 版本,
<Route path='' Componenet=Default>
应该改为,
<Route path='' element=<Default>>
【讨论】:
您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center。以上是关于有没有办法在 react-router-redux@5.0.0 中定义默认路由(如果没有匹配)的主要内容,如果未能解决你的问题,请参考以下文章
在 react + redux + react-router-redux 中导航到用户登录成功的主页
无法读取未定义的属性“类型”(react-router-redux)
react-router-redux 5:维护导航中的商店状态历史记录
react-router-redux 打破了我的应用程序状态