угловой, не может прочитать свойство 'fruits' из undefined - PullRequest
0 голосов
/ 28 марта 2019

В angular я получаю ошибку: не могу прочитать свойство "fruits" из undefined. В моем классе у меня есть:

export class myClass implements OnInit {

fruits: any[];

doSomething() {
this.myArray.forEach(function(m) {
  const my = { test: true };
  this.fruits.push(my);
  }
}

У меня могут быть разные типы, которые я хочу добавить в свой массив, поэтому я не определил интерфейс. Чем это вызвано?

Ответы [ 2 ]

1 голос
/ 28 марта 2019

Если вы хотите получить доступ к этому, вы должны использовать функции стрелок:

fruits: any[] = [];

doSomething() {
  this.myArray.forEach(m => {
    const my = { test: true };
    this.fruits.push(my);
  }
}

Функции стрелок приведут к его лексическому ограничению, что позволит вам получить доступ к this из самого контекста объекта (внешняя сфера).Подробнее об этом здесь .

0 голосов
/ 28 марта 2019

Вы должны инициализировать фрукты

export class myClass implements OnInit {

    public myArray: string[] = ['banana', 'Apple, 'Kumquat']
    public fruits: {test: boolean}[] = [];

    constructor() {}

    ngOnInit() {}

    public doSomething(): void {

      let my: any = {}; 

      this.myArray.forEach( m => {
        my = { test: true };
        this.fruits.push(my);
      });
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...