簡體   English   中英

TypeScript:TypeError:無法讀取未定義的屬性“ push”

[英]TypeScript: TypeError: Cannot read property 'push' of undefined

我正在嘗試使用Angular 2開發應用程序。現在我遇到了一個我無法解決的問題。

數組的功能之一應該是push(object: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);
            }
        });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM