You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React Router v6嵌套路由访问子路径不显示子元素问题

问题原因

这是React Router v6嵌套路由的标准规则导致的:父路由对应的组件必须内置<Outlet />组件作为子路由内容的渲染出口,你当前父路由的element仅返回了<h1>I am parent</h1>,没有预留子路由的挂载位置,因此访问子路由时仅能看到父路由内容,子路由内容没有渲染入口。

解决方法
  1. 先从react-router-dom依赖中导入Outlet组件:
import { Outlet } from 'react-router-dom'
  1. 修改父路由的element配置,加入Outlet占位:
<Route path="/parent" element={<>
  <h1>I am parent</h1>
  <Outlet />
</>}>
  <Route path="child" element={<h1>I am child</h1>} />
</Route>

修改后完整的路由配置如下:

return (
<BrowserRouter>
  <Routes>
    <Route path="/parent" element={<>
      <h1>I am parent</h1>
      <Outlet />
    </>}>
      <Route path="child" element={<h1>I am child</h1>} />
    </Route>
    <Route
      path="*"
      element={
        <main style={{ padding: '1rem' }}>
          <p>There's nothing here!</p>
        </main>
      }
    />
  </Routes>
</BrowserRouter>
)

<Outlet />的作用就是在父路由组件内部预留占位位,当匹配到对应子路由时,会自动将子路由的组件渲染到该位置,你可以根据自己的布局需求调整<Outlet />在父组件中的摆放位置。

内容的提问来源于stack exchange,提问作者Jumail

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 01:06:03