我定义了数组,并初始化了(TWICE),但是在运行时出现“ ERROR TypeError:无法读取未定义的属性'length'的信息”。

我已经尝试检查数组是否已定义(如您在我的代码中看到的那样),但是angular仍在拖曳我。
我已经尝试了所有解决方案,例如将sintax更改为“ filesToUpload && filesToUpload?.length> 0”或任何可能的组合,但是Angular在imo上无法正常工作。

component.html文件

<ng-container *ngIf="undefined !== filesToUpload && filesToUpload.length > 0">
  <button (click)='uploadImages()'
           class="btn btn-success"
           type="button">
          <i class="fas fa-upload"></i>Upload
  </button>

  <button (click)='cancelUpdate()'
          class="btn btn-danger"
          type="button">Cancel</button>
</ng-container>


这是我的component.ts文件

export class ImageGalleryUploadComponent implements OnInit
{
  filesToUpload: File[] = [];
  ngOnInit() {
    this.filesToUpload = []
  }
}


这是有角度的错误吗?还是与组件生命周期有关?

最佳答案

在将undefined分配给Array对象的某个地方尝试此操作。

<ng-container *ngIf="filesToUpload && filesToUpload != 'undefined' && filesToUpload.length > 0">


尽管这不是一个好习惯,但是只需尝试一次,如果确认,则交叉检查代码。

09-25 17:34