无法将从 api 返回的数据值分配给 Angular 中的 class 变量 8

Not able to assign data value returned from api to class variable in Angular 8

我正在调用 api 以获取有关 ngOnInit 的数据。但是我无法分配数据 class 变量。 下面是相关代码

  tasks: Task[];

  ngOnInit() {

    this.apiService.getTasks()
      .subscribe( data => {
        Object.keys(data).map((index) => {
          this.tasks.push(data[index]);
       });
      });

  }

我收到错误消息说'TypeError: Cannot read 属性 'push' of undefined' for statement

this.tasks.push(data[index]);

但是任务已经定义为数组。

任何人都可以在这里帮助我,范围真的让我很困惑

Map 将 return 一个新数组,因此无需推入 map。因此你的代码应该是

this.apiService.getTasks()
      .subscribe( data => {
        this.tasks = Object.keys(data).map((index) => {
         return data[index];
         });
      });

如果您在地图中所做的只是 return 属性 的值,您可以使用 Object.values().

this.apiService.getTasks().subscribe(data => {
  this.tasks = Object.values(data);
});