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

react-router-dom中Outlet失效:导航组件无法持久渲染问题排查

解决react-router-dom中导航组件持久显示的问题

你的问题出在路由结构上:当前Navigation、Home、Shop是同级路由,访问根路径或/shop时只会渲染对应组件,不会同时显示Navigation。Outlet组件需要配合嵌套路由才能生效,用来渲染父路由下的子路由内容。

修改后的代码如下:

import Home from "./Routes/Home/Home.component";
import { Routes, Route, Outlet } from "react-router-dom";

const Navigation = () => {
  return (
    <div>
      <div>
        <h1>Hello I am Navigation!!!</h1>
      </div>
      <Outlet /> {/* 这里将渲染子路由的内容 */}
    </div>
  );
};

const Shop = () => {
  return <h2>I am shop component</h2>
}

const App = () => {
  return (
    <Routes>
      {/* 将Navigation设为父路由,嵌套子路由 */}
      <Route path='/' element={<Navigation />}>
        <Route index element={<Home />} /> {/* 根路径下渲染Home */}
        <Route path='shop' element={<Shop />} /> {/* /shop路径下渲染Shop */}
      </Route>
    </Routes>
  );
};

export default App;

修改说明

  • 将原同级路由包裹在Navigation的路由节点内,形成嵌套关系
  • Navigation中的Outlet会自动渲染匹配到的子路由组件,实现导航始终在顶部显示、路由切换时持久化的效果

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 20:10:36