javascript - 如何在 React 组件的 read.onloadend 中访问 'this' ?

标签 javascript reactjs file upload

我正在尝试读取用户在 React 组件中上传的文件,并将 React 组件的状态设置为文件内容。但是,在 read.onloadend 回调函数中,我无法通过 this 访问状态。

这是实际的表单部分(我正在使用react-bootstrap)

      <FormGroup>
          <FormControl
            id="fileUpload"
            type="file"
            accept=".txt"
            onChange={this.handleSubmit.bind(this)}
          />
      </FormGroup>

这是我处理提交的函数:

  handleSubmit(e) {
    e.preventDefault()
    let inputtext;
    let file = e.target.files[0];
    let read = new FileReader();
    read.readAsBinaryString(file);
    read.onloadend = function(){
      this.setState({filetext : read.result});
    }
    read.onloadend.bind(this);
  }

最佳答案

只需使用箭头函数即可。 这样this就不会改变。

handleSubmit(e) {
    e.preventDefault()
    let inputtext;
    let file = e.target.files[0];
    let read = new FileReader();
    read.readAsBinaryString(file);
    read.onloadend = () => {
      this.setState({filetext : read.result});
    }
  }

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Arrow_functions#No_separate_this

关于javascript - 如何在 React 组件的 read.onloadend 中访问 'this' ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49103322/

相关文章:

javascript - 从一个 polymer 组件调用一个函数到另一个

javascript - Highcharts:在图例中显示堆叠图表的最后一个值

javascript - 在 React Form 无状态组件和全状态 Root 组件之间传递多个输入字段

javascript - Redux,使用调度并且不要变异..除了有时?

c - 如何使用 fwrite 将结构写入文件?

java - 使用增量整数命名 fileOutputStream

javascript - 如何防止 Javascript/JQuery 移动页面上的其他元素?

javascript - 使用索引访问对象属性会给出 undefined

reactjs - 在 React 中如何将 key prop 添加到作为对象传递的元素

c - 文件 C 程序中奇怪的 getchar() 输出