我问这个是因为我想知道这个(下面)是否可行,如果是这样的话,我的页面应该如何正常工作呢? Router history={browserHistory} Route path="/" component={Root} IndexRoute component={Home} / Route path="404" comp
<Router history={browserHistory}> <Route path="/" component={Root}> <IndexRoute component={Home} /> <Route path="404" component={Empty} /> <Route path="about" component={About} /> <Route path="archive" component={Archive} /> <Redirect from="*" to="/404" /> </Route> <Route path="dashboard" component={_Dashboard}> <IndexRoute component={_Master} /> <Route path="post" component={_Post} /> <Redirect from="*" to="/dashboard" /> </Route> </Router>
是否可以让“/”和“仪表板”的路线成为彼此相同级别的孩子?
出于布局目的,我希望嵌套在“/”下的所有页面都使用Root组件的布局,而所有嵌套在“dashboard”下的页面都使用_Dashboard组件的布局.
更新(下面的解决方案)
使我上面的工作无法工作/可能的问题是由于我的根目录的Redirect所在的位置.以下Thomas Sojka的回答解决了我的问题.
这里(下面)是我目前所拥有的,正如我需要的那样(这次组件名称和路径略有不同,但总体思路和结构应足以显示解决方案).
<Router history={browserHistory}> <Route path="/" component={Root}> <IndexRoute component={Home} /> <Route path="404" component={Empty} /> <Route path="about" component={About} /> <Route path="archive" component={Archive} /> </Route> <Route path="dashboard" component={_Root}> <IndexRoute component={_Home} /> <Route path="404" component={_Empty} /> <Route path="post" component={_Post} /> <Route path="post-single" component={_PostSingle} /> <Redirect from="*" to="404" /> </Route> <Redirect from="*" to="404" /> </Router>
根级别的重定向必须与“/”和“仪表板”的路由相同,并且在所有这些路由之后/之下才能工作.我在原始问题中找到了这个重定向的地方,以便“仪表板”及其任何一个孩子都找不到.
对“仪表板”的任何子项进行重定向也位于其中.
您需要将404路由放在最后,否则永远不会找到/ dashboard路由:<Router history={browserHistory}> <Route path='/' component={Root}> <IndexRoute component={Home} /> <Route path='404' component={Empty} /> <Route path='about' component={About} /> <Route path='archive' component={Archive} /> </Route> <Route path='/dashboard' component={_Dashboard}> <IndexRoute component={_Master} /> <Route path='post' component={_Post} /> <Redirect from='*' to='/dashboard' /> </Route> <Redirect from='*' to='/404' /> </Router>