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

React报错this.setState is not a function问题查询与修复方案咨询

问题原因

  • 你在onSubmit方法里错误地把React组件内置的setState实例方法直接覆盖成了状态对象:
// 错误写法,直接把setState方法赋值为defaultState对象
this.setState = (defaultState);

这行代码执行后,原本用于更新状态的setState方法被替换成了普通的JS对象,后续你在handleChange里调用this.setState的时候,自然会提示“setState不是函数”。

  • 你之前打印defaultState的type值能正常返回,是因为这个操作是在onSubmit执行、覆盖setState之前触发的,覆盖操作只在你点击提交按钮之后才会执行,提交前所有的状态操作都正常。

修复方案

把onSubmit里重置表单的错误写法,改成正确的setState调用格式即可:

// 替换原来的 this.setState = (defaultState);
this.setState(defaultState);

去掉赋值的等号,用正确的setState传参方式传入要重置的状态对象即可,修改后setState方法不会被覆盖,后续所有调用都会正常执行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 19:36:01