角度的,无法读取未定义的属性“水果”

时间:2019-03-28 00:58:34

标签: arrays angular typescript angular7

在角度上,我得到一个错误:无法读取未定义的属性“水果”。在我的课堂上,我有:

export class myClass implements OnInit {

fruits: any[];

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

我可能要添加到数组中的类型不同,因此我没有定义接口。是什么原因造成的?

2 个答案:

答案 0 :(得分:1)

如果要访问此选项,则应使用箭头功能:

fruits: any[] = [];

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

箭头函数将使其受到词法限制,从而使您可以从对象上下文本身(“外部”范围)访问this。进一步了解here

答案 1 :(得分:0)

您必须初始化水果

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);
      });
    }
}