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

使用history库报错:history.createBrowserHistory is not a function(React.js)

解决TypeError: (0 , _history.createBrowserHistory) is not a function问题(使用history@1.17.0时)

你遇到的报错核心原因是history@1.17.0这个旧版本的导出机制和你写的ES模块命名导入不兼容。

为什么会报错?

history库在v4版本之后才支持createBrowserHistory这类命名导出,而你用的v1.17.0是非常早期的版本——它直接将创建浏览器history的函数作为模块的默认导出,并没有提供createBrowserHistory这个命名导出项。所以当你用import { createBrowserHistory } from 'history'时,实际上拿到的是undefined,调用它自然会报"不是函数"的错误。

两种解决方案

方案1:升级history版本(推荐)

旧版本的history不仅导出方式老旧,还可能存在兼容性问题和bug,升级到稳定版是更优选择:

  • 先卸载旧版本:
    npm uninstall history
    
  • 安装适配React项目的稳定版本(比如v4,和大多数React Router版本兼容性更好):
    npm install history@4
    
    或者直接安装最新版:
    npm install history
    

升级完成后,你原来的代码不需要任何修改,就能正常运行:

import { createBrowserHistory } from 'history';
export const historyHelper = createBrowserHistory();

方案2:适配v1.x的导出方式(仅用于无法升级的场景)

如果因为某些原因不能升级版本,你需要改为默认导入的方式:

import createBrowserHistory from 'history';
export const historyHelper = createBrowserHistory();

或者用CommonJS的写法:

const createBrowserHistory = require('history');
export const historyHelper = createBrowserHistory();

内容的提问来源于stack exchange,提问作者S.M_Emamian

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 08:07:31