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

React报错:无法在<Router>内渲染另一个<Router>,应用中不能有多个Router

React Router 配置后仍报错的排查方案

针对你提供的路由代码,以下是几个常见的排查方向:

1. 确认 react-router-dom 版本匹配

你使用的是 <Routes> 和 element 属性,这是 react-router-dom v6 的专属语法。如果安装的是 v5 版本,会出现语法不兼容的报错。

  • 执行命令查看当前版本:
    npm list react-router-dom
    
  • 若版本低于 v6,重新安装最新版:
    npm install react-router-dom@latest
    

2. 检查组件导入是否正确

确保 Index、Err404、Contact 等组件在 App.js 中正确导入,路径和导出方式要完全对应:

// App.js 顶部需添加类似导入语句
import Index from './Index'; // 路径根据实际文件位置调整
import Err404 from './Err404';
import Contact from './Contact';
import Register from './Register';
import Login from './Login';

3. 避免 Router 嵌套冲突

确认应用中没有重复嵌套 <BrowserRouter>,当前 index.js 中已经用 BrowserRouter 包裹了 App,App 内部不要再添加任何 Router 组件,否则会导致路由上下文冲突。

4. 添加兜底路由(解决未匹配路径报错)

如果是访问不存在的路径时报错,可以在 Routes 末尾添加兜底路由,捕获所有未匹配的路径:

// App.js 的 Routes 中添加
<Route path="*" element={<Err404 />} />

5. 确认 React 版本兼容性

你使用的是 React 18 的 createRoot 渲染方式,确保 React 和 ReactDOM 版本都是 18 及以上,避免版本不兼容导致的渲染问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 15:15:35