Angular 尝试推送数据时未定义数组的角度2抛出错误

Angular 尝试推送数据时未定义数组的角度2抛出错误,angular,typescript,Angular,Typescript,我正在使用Angular2组件,在该组件中,我声明了字符串数组并同时初始化,在该组件中,我尝试推送数据的方法之一,但得到了未定义的错误,不确定我缺少了什么 export class MyComponent implements OnInit { public categoryData: string[] = []; ngOnInit(): void { } public loadDataFromServer() { let MyServe

我正在使用Angular2组件,在该组件中,我声明了字符串数组并同时初始化,在该组件中,我尝试推送数据的方法之一,但得到了未定义的错误,不确定我缺少了什么

export class MyComponent implements OnInit {

    public categoryData: string[] = [];

    ngOnInit(): void {

    }

    public loadDataFromServer() {

        let MyServerData = result.data;

        MyServerData.forEach(function (item) {
            this.categoryData.push(item.BarTitle); // error here
        });
    }
}
错误
您必须使用箭头函数,否则将失去使用
函数
关键字创建的新匿名函数的
上下文:

MyServerData.forEach((item) => {
  this.categoryData.push(item.BarTitle); // no error here
});

您必须使用箭头函数,否则将失去使用
函数
关键字创建的新匿名函数的
上下文:

MyServerData.forEach((item) => {
  this.categoryData.push(item.BarTitle); // no error here
});

使用此代码,它将工作:

导出类MyComponent实现OnInit{
公共类别数据:字符串[]=[];
ngOnInit():void{
}
公共loadDataFromServer(){
让MyServerData=result.data;
const crntData=此;
MyServerData.forEach(函数(项){
crntData.categoryData.push(item.BarTitle);//此处出错
});
});

}
使用此代码它将起作用:

导出类MyComponent实现OnInit{
公共类别数据:字符串[]=[];
ngOnInit():void{
}
公共loadDataFromServer(){
让MyServerData=result.data;
const crntData=此;
MyServerData.forEach(函数(项){
crntData.categoryData.push(item.BarTitle);//此处出错
});
});


}
初始化数组:
categoryData=[]
尝试一个箭头函数:
MyServerData.forEach(item=>{…})
我相信categoryData:string[]=[];通过执行=[]是否如此?没有仍然错误………在初始化数组时:
categoryData=[]
尝试一个箭头函数:
MyServerData.forEach(item=>{…})
我相信categoryData:string[]=[];通过这样做=[]这样还是不这样?没有仍然错误………没有。。。还有error@khurram这可能是因为你没有正确地复制我的答案,并且仍然在
forEach
callback中使用
function
关键字。无论如何,这个问题已经在Angular论坛上被问过很多次了。这是最终的重复问题。@ConnorsFan yep,也很难搜索,因为错误总是不同的:)不。。。还有error@khurram这可能是因为你没有正确地复制我的答案,并且仍然在
forEach
callback中使用
function
关键字。无论如何,这个问题已经在Angular论坛上被问过很多次了。这是一个最终的重复问题。@ConnorsFan yep,也很难搜索,因为错误总是不同的:)这很有效。。。谢谢我不知道为什么有人给你打负面分数@库拉姆因为今年不是2014年,所以他获得了反对票……这起作用了。。。谢谢我不知道为什么有人给你打负面分数@khurram因为今年不是2014年,他获得了反对票。。。。