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

React项目使用BrowserRouter报TypeError: Object() is not a function求解

问题根因

你遇到的报错核心原因是 react-router-dom v6 与当前项目的 React 16.6.3 版本不兼容:react-router-dom v6 全面使用了 React Hooks 特性,而 Hooks 是 React 16.8 版本才正式推出的,低于这个版本的 React 无法运行 react-router-dom v6 的相关逻辑。

解决方案

方案1:降级 react-router-dom 到 v5 版本(适配当前项目原始依赖环境,改动最小)

  • 先卸载现有版本的 react-router-dom:
    npm uninstall react-router-dom
  • 安装兼容 React 16.6 的 v5 最新稳定版:
    npm install react-router-dom@5.3.4
  • 不需要改动你已经写的 BrowserRouter 相关引入和使用代码,重新运行项目即可正常启动。

方案2:升级 React 及相关依赖适配 react-router-dom v6

如果要继续使用 react-router-dom v6,可以把 React、ReactDOM 升级到 16.8 及以上的兼容版本:

  • 执行升级命令:
    npm install react@^16.8.0 react-dom@^16.8.0
  • 升级完成后重新运行项目即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 02:24:04