Невозможно присвоить значение данных, возвращаемое из api, переменной класса в Angular 8 - PullRequest
0 голосов
/ 29 мая 2020

Я вызываю api, чтобы получить данные о ngOnInit. Однако я не могу назначить переменную класса данных. Ниже приведен соответствующий код

  tasks: Task[];

  ngOnInit() {

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

  }

Я получаю сообщение об ошибке «TypeError: невозможно прочитать свойство« pu sh »of undefined» для оператора

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

Но задачи уже определены как массив.

Кто-нибудь может мне здесь помочь, прицел меня действительно смущает

Ответы [ 2 ]

1 голос
/ 29 мая 2020

Если все, что вы делаете на карте, - это возвращаете значение свойства, вы можете использовать Object.values().

this.apiService.getTasks().subscribe(data => {
  this.tasks = Object.values(data);
});
0 голосов
/ 29 мая 2020

Карта вернет новый массив, поэтому нет необходимости вставлять внутри карту. Следовательно, ваш код должен быть

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