Aar*_*ell 28 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>
Run Code Online (Sandbox Code Playgroud)
如果我将路线折叠起来,它看起来像:
<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>
Run Code Online (Sandbox Code Playgroud)
它工作正常.我嵌套的原因是因为我会在"仪表板"下面有多个孩子,并希望它们都dashboard在URL中加上前缀.
bjf*_*her 42
配置不是关于路由(尽管名称),而是关于路径驱动的布局.
所以,有了这个配置:
<Route name="dashboard" handler={availableRoutes.Dashboard}>
<Route name="dashboard-child" handler={availableRoutes.DashboardChild} />
</Route>
Run Code Online (Sandbox Code Playgroud)
据说这是dashboard-child嵌入内部的dashboard.这是如何工作的,如果dashboard有这样的事情:
<div><h1>Dashboard</h1><RouteHandler /></div>
Run Code Online (Sandbox Code Playgroud)
并dashboard-child有:
<h2>I'm a child of dashboard.</h2>
Run Code Online (Sandbox Code Playgroud)
然后,对于路径dashboard,由于没有匹配的路径,没有嵌入的子节点,导致:
<div><h1>Dashboard</h1></div>
Run Code Online (Sandbox Code Playgroud)
对于路径dashboard/dashboard-child,嵌入式子级具有匹配路径,从而导致:
<div><h1>Dashboard</h1><h2>I'm a child of dashboard.</h2></div>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
26678 次 |
| 最近记录: |