【问题标题】:How to setup index route on nested parent route in React Router v6如何在 React Router v6 中的嵌套父路由上设置索引路由
【发布时间】:2022-01-10 16:12:40
【问题描述】:

详情:我有这样的顶级路由:

<Routes>
  <Route path='/*' element={<HomePage/>} />
  <Route path='/movies/*' element={<MoviesPage/>} />
  <Route path='/profile/*' element={<ProfilePage/>} />
  <Route path='/people/*' element={<PeoplePage/>} />
  <Route path='/auth' element={<LoginPage/>} />
</Routes>

我们看看具体的嵌套路由/movies/*:

<Routes>
  <Route path='' element={<Outlet/>}>
    <Route index path='top-rated/*' element={<TopRatedMoviesPage/>} />
    <Route path='popular/*' element={<PopularMoviesPage/>} />
    <Route path='recommended/*' element={<RecommendedMoviesPage/>} />
    <Route path=':id/details' element={<MovieDetails/>} />
  </Route>
</Routes>

问题:当我尝试访问 /movies 时,预期的行为应该是导航到 /movies/top-rated由于 top-rated/* 路由上的 index 属性,但没有发生这种情况。我不知道我是否误解了 index 属性和 Outlet 元素背后的功能,所以我需要任何人的帮助。我希望你能理解这个问题。

提前谢谢你!

【问题讨论】:

  • 我认为你应该有&lt;Route path='/' element={&lt;Outlet/&gt;}&gt;,(注意路径是'/'而不是''但我不确定。
  • @Ben Nope,试过了,不行。

标签: reactjs react-router


【解决方案1】:

可能是因为您的索引路由配置错误。它不应该有文档中所说的路径:Index Route - A child route with no path that renders in the parent's outlet at the parent's URL.

index 在到达/movies 时不提供自动导航。但是,如果您手动导航到 /top-rated,组件应该在那里。

【讨论】:

  • 这确实是问题所在。我需要做一些路线重构来完成我目前的目标。谢谢!
猜你喜欢
  • 1970-01-01
  • 2022-11-06
  • 1970-01-01
  • 2022-08-14
  • 2021-12-28
  • 2023-02-21
  • 1970-01-01
  • 2021-12-24
  • 1970-01-01
相关资源
最近更新 更多