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

React.js中出现Type Error: Object(...) is not a Function错误求助——useHistory调用异常(React及React-Dom版本已升级)

解决React中Type Error: Object(...) is not a Function的问题

我一眼就发现了两处导致这个错误的问题,咱们一步步来修复:

1. useState的解构方式完全错了

useState Hook返回的是数组,而不是对象,你用对象解构const {login,setLogin} = useState(...)肯定会报错——数组元素是按顺序排列的,根本没有login或setLogin这些键名。

正确的用法是用数组解构:

// 把对象解构换成数组解构
const [login, setLogin] = useState({email:"",password:""});

2. useHistory在React Router v6中已被废弃

如果你的项目用的是React Router v6版本,useHistory这个钩子已经被移除了,取而代之的是useNavigate。这也是触发"Object(...) is not a Function"错误的核心原因之一。

修改方式如下:

// 先导入useNavigate(替换原来的useHistory)
import { useNavigate } from 'react-router-dom';

// 在组件内初始化
const navigate = useNavigate();

// 原来的history.push('/target-path')改成这样:
navigate('/target-path');
// 返回上一页可以用:
navigate(-1);

把这两处修改完成后,你的错误应该就能彻底解决了。如果还是有问题,可以检查一下react-router-dom的版本,v6及以上必须用useNavigate,v5及以下才保留useHistory。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 22:44:03