反应路由器和嵌套路由
React router and nested routes
我对如何创建以下(非常简单的)路由结构感到困惑。
我有一个应用程序有一个用于登录组件的 top-level 路由:
和应用程序本身的另一个 top-level 路由(我们称它为 Home 组件):
现在,Home 组件有一个 header、一个边栏和 child 视图的主要 space。
登录组件应显示在 /login
路径;这很简单。但让我感到困惑的是,我希望 /
路径在主视图中显示带有特定 child 组件(我们称之为 Welcome)的 Home 组件。此外,我能想到的大多数其他路由都应该在 Home 组件内呈现 child 组件。
所以,重申一下:
path /
呈现 Home 组件,其中包含 Welcome 组件
path /foo
渲染 Home 组件,其中包含 Foo 组件
...
路径/login
呈现登录组件
感觉自己想的结构是:
<Route path='/' component={App}>
<IndexRoute component={Home}>
<IndexRoute component={Welcome}>
<Route path='foo' component={Foo}/>
</IndexRoute>
<Route path='login' component={Login}/>
</Route>
但这显然是错误的。实现此路由结构的正确方法是什么?
这可能是一个很好的解决方案,试一试。
<Route component={App}>
<Route path="/" component={Home}>
<IndexRoute component={Welcome}/>
<Route path="/foo" component={Foo}/>
</Route>
<Route path="/login" component={Login}/>
</Route>
我对如何创建以下(非常简单的)路由结构感到困惑。
我有一个应用程序有一个用于登录组件的 top-level 路由:
和应用程序本身的另一个 top-level 路由(我们称它为 Home 组件):
现在,Home 组件有一个 header、一个边栏和 child 视图的主要 space。
登录组件应显示在 /login
路径;这很简单。但让我感到困惑的是,我希望 /
路径在主视图中显示带有特定 child 组件(我们称之为 Welcome)的 Home 组件。此外,我能想到的大多数其他路由都应该在 Home 组件内呈现 child 组件。
所以,重申一下:
path /
呈现 Home 组件,其中包含 Welcome 组件
path /foo
渲染 Home 组件,其中包含 Foo 组件
...
路径/login
呈现登录组件
感觉自己想的结构是:
<Route path='/' component={App}>
<IndexRoute component={Home}>
<IndexRoute component={Welcome}>
<Route path='foo' component={Foo}/>
</IndexRoute>
<Route path='login' component={Login}/>
</Route>
但这显然是错误的。实现此路由结构的正确方法是什么?
这可能是一个很好的解决方案,试一试。
<Route component={App}>
<Route path="/" component={Home}>
<IndexRoute component={Welcome}/>
<Route path="/foo" component={Foo}/>
</Route>
<Route path="/login" component={Login}/>
</Route>