reactjs - 在非箭头函数内调用 this.setState?
问题描述
我正在使用一个库来处理文件的内容。我正在使用function
而不是arrow function
因为我需要访问decode method
. 但是后来我想将函数的结果设置为组件的状态。但当然,在这种情况下,这不再指向组件。
我不确定在那里做什么?
reader.loadFile(file)
.then((response) => {
reader.iterateLines({
eachLine: function (raw, progress, lineNumber) {
console.log(this.decode(raw))
this.setState({
txtFileContent: this.decode(raw)
});
},
})
})
.catch( (reason): void => {
console.log(this);
});
解决方案
在您仍然有能力的情况下将其分配给那个:
const that = this;
稍后,在 this 不再是您想要的“this”的范围内,您仍然可以调用它的方法。
that.setState(....);
请记住,'that' 是一个通用提议,这个常量的任何语义名称都是更好的选择。
推荐阅读
- c++ - 使用 Opencv 将姿势值实时写入文本文件
- python - python msrestazure 包抛出隧道连接失败错误
- c# - 将工作流构建到现有应用程序中
- java - Spring Boot Test:根据活动配置文件在测试中执行不同的 sql 脚本?
- asp.net-mvc - 如何验证来自 MVC 表单的重复发布请求
- angular - Angular 组件 styleUrls
- html - 使用 :has()从锚链接中删除下划线或被锚链接包裹
- javascript - 通过构造函数传递变量时出错
- android - Acces a complex json object in Ionic 3 and bind to view
- c# - C# Slotmachine 获胜算法