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

React Router v6升级后路由访问显示空白页问题咨询

问题根因

升级后页面空白无控制台报错,核心是react-router-dom v6 相对 v5 存在Route组件的破坏性API变更,现有代码未适配新规则:

  • v5 版本中Route的component/render/children属性支持直接传入组件函数引用,但v6版本仅保留element属性,要求必须传入可渲染的JSX元素,而非组件本身的引用。当前代码写的element={TierA}属于直接传递组件函数,React无法识别渲染,因此所有路由都不会输出内容,且不会抛出显性报错。
  • 额外冗余问题:v6 版本路由默认采用精确匹配规则,不再支持也不需要exact属性,代码中添加的exact属于无效冗余代码。另外index.js中导入的BrowserRouter/Routes/Route没有实际使用,属于无用导入。
修复方案
  • 修改所有路由的element属性传值,将组件引用改为JSX标签形式
  • 删除所有Route标签上冗余的exact属性
  • (可选优化)清理index.js中未使用的react-router-dom相关导入,精简代码

修复后路由核心代码如下:

<BrowserRouter basename={process.env.PUBLIC_URL}>
    <Routes>
        <Route element={<TierA />} path="/a_tier" />
        <Route element={<TierB />} path="/b_tier" />
        <Route element={<Catalogue />} path="/catalogue" />
        <Route element={<Admin />} path="/admin" />
        <Route element={<NotFound />} path="*" /> 
    </Routes>
</BrowserRouter>

修改完成后重启npm start开发服务,访问对应路由即可正常渲染,根路径/会自动匹配兜底的*路由展示404页面,和v5版本行为一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 21:45:34