问题描述: 在Angular 8应用程序中,当在FileReader的onloadend方法中设置类变量时,无法访问该变量。
解决方法: 要解决这个问题,可以使用箭头函数(Lambda表达式)来确保在onloadend方法中能够访问类变量。
以下是一个示例代码:
export class AppComponent {
fileReader: FileReader;
result: string;
constructor() {
this.fileReader = new FileReader();
this.fileReader.onloadend = () => {
this.result = this.fileReader.result as string;
console.log(this.result); // 可以访问类变量
};
}
readFile(file: File) {
this.fileReader.readAsText(file);
}
}
在上面的代码中,我们使用箭头函数来确保在onloadend方法中可以访问类变量。通过将onloadend方法设置为箭头函数,它会绑定到所属的AppComponent实例,并且可以访问类变量。
这样,当调用readFile方法并提供一个文件时,它将使用FileReader来读取文件的内容,并将结果保存在类变量result中。然后,我们可以在onloadend方法中访问result变量,并在控制台上打印结果。
通过使用箭头函数,我们可以确保在FileReader的onloadend方法中可以访问类变量。