react-router v4 怎么让匹配不到子路由的跳转404?

发布于 2022-09-07 15:43:56 字数 1071 浏览 26 评论 0

之前用react-router v3 当设定主路由是/Home的时候,只要不设定参数,/Home/asd 都会匹配不到,跳转到404,但是升级v4以后 /Home主路由,不设定参数,不设定子路由,/Home/asd也会匹配到/Home 如果用严格模式exact,设定了的子路由又匹配不到了?那这下要怎么配置成v3那种模式?

这是主路由的配置

<HashRouter >
          <div>
              <Switch>
                  
                  {/* 首页 */}
                  <Route path='/Home' component={Home} /> 
                  {/* 404页面 */}
                  <Route component={NotFound}/> 
                    
              </Switch>
          </div>
</HashRouter>

这是子路由的配置

<Switch>
   <Route path='/Home/firstchild' component={HomeChildFirst} /> 
</Switch>

找到一个曲线救国的方法,子路由底下再加一个404页面的路由

<Switch>
   <Route path='/Home/firstchild' component={HomeChildFirst} /> 
   <Route component={NotFound}/> 
</Switch>

但这样的话很麻烦,不能统一。

还有就是,主路由/Home,不写:prop参数,匹配路由的时候,如果后面有东西比如 /Home/asddd,他会按asddd是参数处理,但是在Home页面拿不到这个参数。

react router v4

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

旧伤慢歌 2022-09-14 15:43:56

那么,请问作者解决这个问题了吗?在线等,急

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文