React路由问题:导航栏Log标签的Link组件无法正常跳转
问题解决:react-router-dom 子路由无法正常渲染
你的路由配置已正确将Log设为Layout的子路由,但Layout组件缺少Outlet组件——这是react-router-dom中专门用来渲染子路由内容的容器,没有它,子路由的元素无法在页面上显示,导致点击Link后页面无变化。
修复步骤:
1. 在Layout组件中添加Outlet
修改Layout.jsx,导入并使用Outlet组件,替换原来直接渲染的Home(若需根路径显示Home,后续再调整路由):
import { Outlet } from 'react-router-dom'; import Header from './Header'; export default function Layout() { return ( <> <Header /> {/* 子路由的内容会在此位置渲染 */} <Outlet /> </> ); }
2. 调整路由配置(可选:根路径显示Home)
如果希望访问/时显示Home组件,需在子路由列表中添加空路径的配置项:
const mainRoutes = [ { path: '/', element: <Layout />, children: [ { path: '', // 匹配父路径/ element: <Home />, }, { path:'log', element:<Log/>, } ], }, ];
完成以上修改后,点击Header中的Link跳转至/log时,页面会在Outlet位置渲染Log组件,路由功能即可正常工作。
内容的提问来源于stack exchange,提问作者rahemanali
相关产品推荐
相关产品推荐

