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

React RouterDom中Outlet与子路由无法正常工作问题求助

问题解决:React Router嵌套路由无法渲染内容

你的问题出在路由嵌套关系配置错误:当前/painel和dashboard是同级路由,并非嵌套关系,所以访问/painel/dashboard时,React Router找不到匹配的路由规则,自然不会渲染Painel组件里的Outlet内容。

正确的路由配置方式

把dashboard路由作为/painel的子路由嵌套进去,修改App组件里的路由代码:

export function App() {
  return (
    <>
      <PrimeReactProvider>
        <BrowserRouter>
          <Routes>
            <Route path="/login" element={<LoginPage />} />
            {/* 把dashboard路由嵌套在painel路由内部 */}
            <Route path="/painel" element={<Painel />}>
              <Route path="dashboard" element={<DashBoard />} />
              {/* 可选:添加index路由,访问/painel时默认渲染的内容 */}
              {/* <Route index element={<PainelDefaultContent />} /> */}
            </Route>
          </Routes>
        </BrowserRouter>
      </PrimeReactProvider>
    </>
  )
}

为什么之前的尝试没用?

  • 把/painel改成/painel/或/painel/*:React Router v6里不需要这种写法,嵌套路由靠子Route来关联,/*是通配符路由,和嵌套逻辑无关。
  • 把dashboard改成/painel/dashboard:这会让它变成独立的顶级路由,只会单独渲染DashBoard,不会走Painel的嵌套渲染逻辑。
  • 移除BrowserRouter:这会直接导致路由完全失效,显然没用。

修改后访问/painel/dashboard,Painel组件的PainelMenu会正常显示,Outlet位置会渲染DashBoard的内容。

内容的提问来源于stack exchange,提问作者Davi Américo

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 12:56:03