为什么会出现错误:无法读取未定义的属性“ 0”?

时间:2020-03-24 06:04:58

标签: typescript angular7

我不明白为什么我收到tagged_Assets的未定义错误 请,有人可以向我解释一下,谢谢。

Model.ts

export class TaggedAssests {
   device_id: string;
   hasTag: boolean;
}

Component.ts

tagged_Assets: TaggedAssests[];

在Component.ts中使用

for(let i = 0; i < this.temp.length; i++) 
{   
        ERR-> this.tagged_Assets[i].device_id = this.temp[i].device_id;*
        this.tagged_Assets[i].hasTag = true;
}

3 个答案:

答案 0 :(得分:0)

尝试初始化数组:

INSERT INTO `user` (`nama`, `email`, `password`, `satker`, `insert_at`, `update_at`) VALUES (NULL, NULL, '$2y$10$nXUVD6prTU3RHgicGFUokesJH3qMpeXtsTGF1.dIzBX2qfyiIj2kG', NULL, 1585030035, 1585030035)

或者正在使用?。运算符

tagged_Assets: TaggedAssests[] = [];

答案 1 :(得分:0)

这里的问题是this.tagged_Assetsundefined,因此您无法访问属性device_id

您可以通过初始化this.tagged_Assets = []来解决此问题,将循环块修改为

this.tagged_Assets[i] =  {
    device_id: this.temp[i].device_id,
    hasTag: true
}

答案 2 :(得分:0)

初始化-tagged_Assets: TaggedAssests[] = [];

并像这样使用它-

this.tagged_Assets[i] =  {
   device_id: this.temp[i].device_id,
   hasTag: true
}