我对长度有疑问。错误TypeError:无法读取未定义的属性“长度”

时间:2018-12-12 02:10:02

标签: angular typescript firebase firebase-storage

长度应该从角向继承吗?以及为什么if(fileList.length> 0)MyPostsComponent.html:7错误TypeError:无法读取未定义属性的“长度”。

onFileSelection(event){
  const fileList: FileList = event.target.filse;

  if (fileList.length > 0){
    const file: File = fileList[0];
    this.myFire.uploadFile(file).then(data => {
      //TO DO
      this.notifier.display('success','Picture Uploaded!');
      console.log(data['fileUrl']);
    })
    .catch(err => {
      this.notifier.display('error', err.message);
    });
  }
}

在我的html代码上

<input type="file" (change)="onFileSelection($event)" placeholder="Upload a file" accept=".png, .jpeg, .jpg">

4 个答案:

答案 0 :(得分:1)

const fileList: FileList = event.target.filse;

您似乎在那里有一个错字,这将导致fileListundefined作为事件的目标肯定不包含名为filse的属性。 / p>

答案 1 :(得分:1)

您可以更改代码,例如...

const fileList: FileList = event.target.files || [];

我希望这会起作用。

答案 2 :(得分:0)

这意味着fileList为null,如下添加空检查,

if (fileList && fileList.length > 0){

答案 3 :(得分:0)

这是因为您的fileList未定义,首先应检查fileList是否未定义

onFileSelection(event){
      const fileList: FileList = event.target.filse;

      if (fileList && `enter code here`fileList.length > 0){
        const file: File = fileList[0];
        this.myFire.uploadFile(file).then(data => {
          //TO DO
          this.notifier.display('success','Picture Uploaded!');
          console.log(data['fileUrl']);
        })
        .catch(err => {
          this.notifier.display('error', err.message);
        });
      }
    }