首页 > 解决方案 > 如何在这里运行 this.setState 函数

问题描述

我无法在第 132 行运行 this.setState

错误

标签: javascriptreactjs

解决方案


对 的处理程序使用箭头语法reader.onloaded

reader.onloaded = () => {
  preview.src = reader.result
  this.setState(...)
}

原因是因为function有它自己的this因此会阻止你访问React.Component's this.

使用箭头语法创建的方法不会创建自己的this. 或者您也可以绑定this到该函数。

reader.onloaded = (function() {
  preview.src = reader.result
  this.setState(...)
}).bind(this)

,这很有效,但你可以决定是否使用它


推荐阅读