当前位置:  开发笔记 > 编程语言 > 正文

Angular2 + Typescript + FileReader.onLoad =属性不存在

如何解决《Angular2+Typescript+FileReader.onLoad=属性不存在》经验,为你挑选了1个好方法。

我正在使用FileReader接口和它的异步方法readAsText()来读取本地文本文件,之后当调用onload事件时,我尝试读取我的文件,我的源代码如下所示:

export class ReadFileComponent {
   text: string;

   readFile(): void {
     let reader=new FileReader();
     reader.onload = function(e) {
        this.text=reader.result;
     }
     reader.readAsText(file);   
   }
}

编译失败,因为"FileReader"类型上不存在属性"text "

我认为这是由于EventListener接口不接受对象,

有人请解决这类问题吗?

多谢你们,



1> Günter Zöchb..:

如果要this在回调内部使用,请使用箭头功能,否则将无法使用

reader.onload = (e) => {
    this.text=reader.result;
}

https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Functions/Arrow_functions


这就是你需要使用`()=>`而不是`function()`的原因.箭头函数确保回调中的`this`始终指向当前类.
推荐阅读
php
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有