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

React Router带子路由的/user路径通配符404规则不生效问题

问题原因

你当前的/user父路由没有配置index路由,当访问/user或/user/时,父路由的<Outlet/>没有匹配到任何子路由内容,所以返回空白。你配置的子路由path="*"仅会匹配/user/后携带路径段的场景,不会匹配空的子路径。

解决方法

给/user父路由新增index子路由,直接指向UserNotFoundPage即可,同时修正你代码里的标签闭合错误:

<Router>
  <Routes>
    {/* PUBLIC */}
    <Route path="*" element={<Navigate replace to="/welcome"/>}/>
    <Route path="/welcome" element={<HomePage/>}/>
    <Route path="/dashboard" element={<DashboardPage/>}/>
    {/* RESTRICTED */}
    <Route path="/login" element={<LoginPage/>}/>
    {/* PRIVATE */}
    <Route path="/user" element={<Users/>}>
      {/* 新增index路由,匹配 /user 或 /user/ 的场景 */}
      <Route index element={<UserNotFoundPage/>}/>
      <Route path="*" element={<UserNotFoundPage/>}/>
      <Route path="username" element={<UserProfilePage/>}/>
    </Route>
  </Routes>
</Router>

如果你的需求是访问/user时跳转到指定用户页而非显示404,也可以把index路由的内容替换成<Navigate replace to="/user/默认用户名"/>即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 20:06:11