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

React Router Dom嵌套路径失效求助:如何正确配置路由?

React Router嵌套路径不显示子组件的解决方案

问题原因

在react-router-dom v6中,嵌套路由的父组件必须通过<Outlet />组件来渲染子路由对应的内容。你的代码里父路由/对应的HomeScreen组件没有包含Outlet,所以访问/dashboard时,子路由的LoginScreen无法被渲染,只会显示父组件HomeScreen的内容。

解决方案

方案1:保持嵌套路由,在父组件中添加Outlet

修改HomeScreen组件,导入并使用Outlet,子路由的内容会渲染在Outlet所在的位置:

// HomeScreen.js
import React from 'react';
import { Outlet } from 'react-router-dom';

export default function HomeScreen() {
  return (
    <div>
      {/* 父组件原有内容 */}
      <h2>Home Screen</h2>
      {/* 子路由组件将在此处渲染 */}
      <Outlet />
    </div>
  );
}

原有的路由配置无需修改,此时访问/dashboard时,页面会同时显示HomeScreen的内容和LoginScreen的内容(因为是嵌套关系)。

方案2:将/dashboard设为同级路由

如果希望访问/dashboard时只显示LoginScreen,不显示HomeScreen,可以把路由配置改为同级结构:

// App.js
const router = createBrowserRouter(
  createRoutesFromElements(
    <>
      <Route path="/" element={<HomeScreen />} />
      <Route path="dashboard" element={<LoginScreen />} />
      {/* 其他路由... */}
    </>
  )
);

这样/和/dashboard是两个独立的路由,分别对应各自的组件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 08:59:18