reactjs – react-router中的嵌套路由

我在React-Router中设置了一些嵌套路由(v0.11.6是我的反对),但是每当我尝试访问其中一个嵌套路由时,它触发父路由。

我的路线看起来像这样:

<Route handler={App}>
    <Route name="home" path="/" handler={availableRoutes.Splash} />
    <DefaultRoute handler={availableRoutes.Splash} />

    <Route name="dashboard" handler={availableRoutes.Dashboard}>
        <Route name="dashboard-child" handler={availableRoutes.DashboardChild} />
   </Route>

    <NotFoundRoute handler={NotFound} />
</Route>

如果我折叠路由,使它看起来像:

<Route handler={App}>
    <Route name="home" path="/" handler={availableRoutes.Splash} />
    <DefaultRoute handler={availableRoutes.Splash} />

    <Route name="dashboard" handler={availableRoutes.Dashboard} />
    <Route name="dashboard-child" path="/dashboard/dashboard-child" handler={availableRoutes.DashboardChild} />

    <NotFoundRoute handler={NotFound} />
</Route>

它工作正常。我嵌套的原因是因为我将在“仪表板”下有多个孩子,并希望他们都在网址中添加仪表板。

配置不是关于路由(尽管名称),但更多关于由路径驱动的布局。

所以,用这个配置:

<Route name="dashboard" handler={availableRoutes.Dashboard}>
  <Route name="dashboard-child" handler={availableRoutes.DashboardChild} />
</Route>

这是说仪表板 – 孩子是嵌入仪表板内。这是如何工作的,如果仪表板有这样的:

<div><h1>Dashboard</h1><RouteHandler /></div>

和dashboard-child具有:

<h2>I'm a child of dashboard.</h2>

然后对于路径仪表板没有嵌入的子由于没有匹配的路径,导致这样:

<div><h1>Dashboard</h1></div>

对于路径仪表板/ dashboard-child,嵌入的孩子具有匹配的路径,导致:

<div><h1>Dashboard</h1><h2>I'm a child of dashboard.</h2></div>

相关文章

react 中的高阶组件主要是对于 hooks 之前的类组件来说的,如...
我们上一节了解了组件的更新机制,但是只是停留在表层上,例...
我们上一节了解了 react 的虚拟 dom 的格式,如何把虚拟 dom...
react 本身提供了克隆组件的方法,但是平时开发中可能很少使...
mobx 是一个简单可扩展的状态管理库,中文官网链接。小编在接...
我们在平常的开发中不可避免的会有很多列表渲染逻辑,在 pc ...