javascript - 推送到数组时,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);
}
});
}
解决方案
categories: Category[]
只是一个数组的声明,您需要实际创建一个新数组并将其分配给该字段:
categories: Category[] = []
推荐阅读
- java - Async 方法的行为不是异步的
- php - 如何根据 laravel 复选框值更新数据库
- arduino - 可以用 Node-red 和 Arduino 草图一起控制 Arduino 吗?
- python - Python 如何为列表中的每个项目创建集合?
- windows - 设置 Windows 资源管理器的视图默认布局
- c# - .NET 异步/等待,是否收集了变量垃圾?
- ssl-certificate - 免费和付费 SSL 证书握手之间的技术区别是什么?
- mysql - mysql sum(column) 从动态表中仅获取一行的值
- mysql - cast 属性用于外键查询而不是原生类型
- javascript - react-native 应用程序中的 Amazon Lex 应查询 SQL 数据库并回答用户问题