当前位置: 首页 > 面试题库 >

React Router-嵌套路由不起作用

魏鸿哲
2023-03-14
问题内容

我的目标是让http:// mydomain /
route1
渲染React组件Component1和http:// mydomain /
route2
渲染Component2。因此,我认为编写如下的路由是很自然的:

    <Route name="route1" handler={Component1}>
        <Route name="route2" handler={Component2} />
    </Route>

    <DefaultRoute name="home" handler={Home} />
  </Route>

http:// mydomain / route1可以正常工作,但http:// mydomain /
route2却呈现Component1。

然后,我阅读了此问题并将路由更改为以下内容:

    <Route name="route1" path="route1" handler={Component1} />
    <Route name="route2" path="route1/route2" handler={Component2} />

    <DefaultRoute name="home" handler={Home} />
  </Route>

这两个HTTP:// MYDOMAIN /路径2和HTTP:// MYDOMAIN
/路径2为目前预计的工作。但是,我不明白为什么前一个在我看来更合逻辑,更整洁时不起作用。

嵌套语法适用于“ /”和“ route1”,那么为什么不使用“ route1”和“ route2”呢?


问题答案:

问题在于,在嵌套路由中,路由器将尝试安装与层次结构匹配的所有组件。当您要将组件彼此嵌套在一起时,这是最好的选择。但是,如果您希望两条单独的路线来匹配不同的组件,则它们将需要成为自己的路线。

<Route handler={App}>
  <Route path="route1" handler={Component1} />
  <Route path="/route1/route2" handler={Component2} />
  <DefaultRoute name="home" handler={Home} />
</Route>

Component2App在URL 为时(在之中)挂载/route1/route2

如果您想窝的组件,你将需要添加<RouteHandler/>Component1,因此会使Component2它里面。

之所以起作用,是因为嵌套组件与嵌套URL不同,并且可以由路由器单独处理。有时,您希望组件嵌套但不一定嵌套URL,反之亦然。



 类似资料:
  • 问题内容: 建立一个多步骤表单(“向导”)。最初是按照本教程进行的,该教程效果很好,但是现在尝试对其进行调整,因此第一步已嵌入首页中,而不是单独的状态。无论我做什么,我都无法创建一条可行的路径。我总是得到: 无法从状态“ home”解析“ .where” 要么 无法从状态“家”解析“ wizard.where” 要么 无法从状态“ home”解析“ wizard.where @” …即使在中效果很

  • 我的目标是让http://mydomain/route1呈现React组件Component1,让http://mydomain/route2呈现component2。因此,我认为编写如下路线是很自然的: http://mydomain/route1按预期工作,但http://mydomain/route2反而呈现Component1。 然后我读了这个问题,并将路线改为:

  • 关于未解决的问题(作为最终结论) react路由器dom v4中的多个嵌套路由 如何在React路由器v4中嵌套路由 我也有同样的问题。 https://reacttraining.com/react-router/web/guides/quick-start促进react-router-dom 此外,人们发现最好在一个文件中列出路由,而不是在组件内部。 有人提到:https://github.c

  • 1. 前言 本小节我们介绍如何嵌套使用 VueRouter。嵌套路由在日常的开发中非常常见,如何定义和使用嵌套路由是本节的重点。同学们在学完本节课程之后需要自己多尝试配置路由。 2. 配置嵌套路由 实际项目中的应用界面,通常由多层嵌套的组件组合而成。同样地,URL 中各段动态路径也按某种结构对应嵌套的各层组件,例如: /article/vue /a

  • 我是嵌套路线在我的项目。我有一个pp.js,在其中我定义了路由,在组件中我有更多的路由,我希望它们被嵌套。唯一的问题是我的嵌套路由位于连接到redux的组件中。嵌套路由不能正常工作。 我已经从官方文档中尝试过了,但它不起作用。 https://reacttraining.com/react-router/core/guides/philosophy App.js 下面是我的Redux容器文件,它根

  • 我有一个名为Dashboard的父组件,它被呈现为路由,如下所示: 我试着嘲笑每个人在嵌套路由上的解决方案,但我似乎无法解决我的问题。