TypeError: невозможно прочитать свойство '****' неопределенного в проекте Angular при использовании внутри forEach - PullRequest
0 голосов
/ 04 августа 2020

Когда я пытаюсь выполнить l oop через this.data.members и выполнить какое-то действие внутри forEach на this.addedUsers , я получаю TypeError: Cannot read свойство addedUsers из undefined . Я могу получить доступ к this.data.members за пределами foarEach.

export class AddgroupComponent implements OnInit {
public addedUsers: any[] = [];

constructor(
    @Inject(MAT_DIALOG_DATA) public data: any
    ) { }

ngOnInit(): void {
       this.data.members.forEach(function (item) {
        console.log(this.addedUsers)
      });
    }
  }
}

1 Ответ

2 голосов
/ 04 августа 2020

Поскольку вы пытаетесь получить доступ к this контексту внутри forEach с синтаксисом ES5, который равен function (item), this будет неопределенным из-за слабой области видимости . Чтобы получить доступ к this, вы должны использовать стрелку () => {} функцию ES6.

ngOnInit(): void {
       this.data.members.forEach((item) => {     // use of () => { ... }arrow function
        

        // probably you want to push members
        // this.addedUsers.push(item) ;

         console.log(this.addedUsers)

      });
    }
}
...