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

React项目无法导入useHistory:react-router-dom无该导出项

解决React Router中无法导入useHistory的问题

问题原因

你安装的是React Router v6,该版本已正式移除useHistory钩子,替换为功能更简洁的useNavigate,所以会出现导出项不存在的错误。

解决方案

方案1:使用React Router v6的useNavigate替代(推荐)

直接改用v6提供的新钩子,适配代码如下:

  1. 导入useNavigate:
import { useNavigate } from "react-router-dom";
  1. 在组件中使用:
const navigate = useNavigate();

// 替代history.push('/path')
navigate('/path');

// 替代history.replace('/path')
navigate('/path', { replace: true });

// 替代history.goBack()
navigate(-1);

// 替代history.goForward()
navigate(1);

方案2:降级到React Router v5(仅兼容旧代码)

如果你的项目依赖大量useHistory的旧代码,不想修改,可以降级到v5版本:
在终端执行命令:

npm install react-router-dom@5

降级后即可正常使用import { useHistory } from "react-router-dom"和原有的useHistory逻辑。

注意事项

React Router v6还有不少API变更(比如用Routes替代Switch,路由组件通过element属性传入等),如果是新项目,建议直接适配v6的新规范,避免后续升级成本。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 15:05:25