首页 > 解决方案 > 推送到数组时,Typescript undefined 不是对象

问题描述

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

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

这是我简单地添加到数组的来源。我从 firestore 集合中获取 obsevable 并循环遍历它。当类别对象数组就在那里时,为什么会给我这个错误。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);
      }
    });
  }

标签: javascripttypescript

解决方案


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

categories: Category[] = []

推荐阅读