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

React Router v6.10嵌套路由无法通过NavLink正常渲染问题

解决方案:嵌套路由需通过<Outlet />渲染子组件

你的核心问题是嵌套路由的父组件未使用<Outlet />组件——React Router的嵌套路由机制要求父路由组件必须通过<Outlet />指定子路由内容的渲染容器,否则子路由组件无法被渲染,只会显示父组件本身。

修改步骤:

在Develop组件中导入并添加<Outlet />,无需改动现有路由结构(你认为的嵌套结构完全合理):

// Develop.tsx
import { Outlet } from "react-router-dom";

export default function Develop() {
  return (
    <div>
      {/* Develop组件自身内容 */}
      <h2>Develop 主页面</h2>
      {/* 子路由(如Web)的内容会渲染在此处 */}
      <Outlet />
    </div>
  );
}

原理说明:

当访问/develop/web时,React Router会同时匹配develop父路由和web子路由,但需要父路由组件通过<Outlet />提供渲染位置。之前未添加<Outlet />,导致子路由的Web组件没有挂载节点,只能显示父组件Develop的内容。

你之前将Web改为同级路由能生效,是因为此时Web不需要依赖父路由的渲染容器,但这种结构破坏了你想要的嵌套路由关系,完全没必要采用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 01:44:56