开发者问题收集

App.js:69 未捕获的类型错误:无法读取未定义的属性(读取“setState”)

2022-02-22
482

有人能帮我吗,我收到此错误“App.js:69 Uncaught TypeError:无法读取未定义的属性(读取'setState') at onInputChange(App.js:69:1)” 代码片段

2个回答

解决此问题的方法很少。

由于您没有使用箭头函数,因此您需要绑定处理程序

constructor() {
  ...code
  this.onInputChange = this.onInputChange.bind(this)
  this.onButtonSubmit = this.onInputChange.bind(this)
}

选项 2 - 将您的函数切换为箭头函数

onInputChange = (event) => {
  ...code
}

onButtonSubmit = () => {
  ...code
}

这里有一篇有用的文章可以帮助您理解原因

https://www.freecodecamp.org/news/this-is-why-we-need-to-bind-event-handlers-in-class-components-in-react-f7ea1a6f93eb/

Shawn Yap
2022-02-22

您可以更改 onInputChange 方法以使用箭头函数,或者需要为 onInputChange 函数绑定 this

使用箭头函数:

onInputChange = (event) => {
  this.setState({ input: event.target.value });
};

使用绑定:

<ImageLinkForm onInputChange={this.onInputChange.bind(this)} onButtonSubmit={this.onButtonSubmit.bind(this)} />
cEeNiKc
2022-02-22