推送到数组时,Typescript undefined不是对象

时间:2018-06-21 15:41:32

标签: javascript typescript

我正在尝试推送到一个数组,但是它一直给我这个错误:

Uncaught (in promise): TypeError: Cannot read property 'push' of undefined
TypeError: Cannot read property 'push' of undefined

这是我只是添加到数组中的源代码。我从firestore集合中观察到了可观察到的内容,并对其进行遍历。当类别对象数组在那里时,为什么会给我这个错误。 categories: Category[];

transactions: Observable<Transaction[]>;
categories: Category[];

private organizeData() {
    let category: Category;

    this.transactions.forEach(v => {
      for (let i = 0; i < v.length; i++) {
        category = {name: v[i].category, totalSpent: v[i].amount};
        this.categories.push(category);
      }
    });
  }

2 个答案:

答案 0 :(得分:2)

categories: Category[]只是数组的声明,您实际上需要创建一个新数组并将其分配给该字段:

categories: Category[] = []

答案 1 :(得分:2)

您没有启动数组categories,因此它将返回未定义的数组。试试:

categories: Category[] = [];