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

React出现Cannot read properties of undefined (reading 'setState')报错怎么解决

问题排查与解决方案

问题原因

你的判断正确,该报错确实是this指向异常导致的。问题出在addDepartment(request).then(function(res){这行代码:你使用普通函数作为addDepartment的回调参数,普通函数的this会根据执行上下文动态绑定,在Promise回调场景下this不会指向CustomToolbar组件实例,而是undefined,因此调用this.setState会抛出对应类型错误。

解决方案

  • 方案1(推荐):将addDepartment的回调改为箭头函数,箭头函数会继承外层作用域的this指向,也就是当前组件实例:
    将原有代码
addDepartment(request).then(function(res){

修改为

addDepartment(request).then((res) => {

即可解决问题。

  • 方案2:在HandleAdd方法顶部预先保存组件this指向,后续用保存的变量调用setState:
    在HandleAdd开头新增一行const _this = this,后续把this.setState改为_this.setState即可。

补充优化建议

  • 你当前的HandleAdd已经使用了箭头函数语法,本身已经自动绑定了组件this,constructor里的this.HandleAdd = this.HandleAdd.bind(this)是冗余代码,可以直接删除。
  • 调用this.setState(Department)前,请确认Department是已经定义好的、符合你的state结构的对象,避免后续出现state相关的报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 11:06:05