TypeScript:TypeError:无法读取属性'推'的未定义

TypeScript: TypeError: Cannot read property 'push' of undefined

本文关键字:未定义 属性 TypeError 读取 TypeScript      更新时间:2023-09-26

我正在尝试用Angular 2制作一个应用程序。现在我遇到了一个我无法解决的问题。

数组的一个函数应该是push(对象:T);

我定义了一个我制作的对象数组。但是,当我尝试向该数组添加值时,我收到以下错误:TypeError:无法读取未定义的属性"push"。

这个错误的主要原因之一是人们忘记定义他们的数组。但我正在定义它,我尝试了多种方法,但仍然是同一个错误。

export class Home {
    activeDossiers: Array<Dossier> = new Array();
    //Also tried:
    //activeDossiers: Dossier[] = [];
    //activeDossiers = [];
    //activeDossiers: Array<Dossier> = [];
    constructor() {
        var dossierApi = new DossierApi();
        dossierApi.getActiveDossiers().then((dossiers) => {
            dossiers.forEach(function (obj, i) {
                console.log(obj);
                if(obj.dossierType === Values.Visible) {
                    this.activeDossiers.push(obj);
                }
            });
        });
    }
}

您正在使用匿名function()语法进行回调;此语法不保留this。相反:

        dossiers.forEach((obj, i) => { // IMPORTANT PART HERE!!!
            console.log(obj);
            if(obj.dossierType === Values.Visible) {
                this.activeDossiers.push(obj);
            }
        });