错误:未捕获(承诺中):TypeError:无法读取属性
2020-06-23
1946
我有此代码,
idTirada: string;
tirada: Tirada;
constructor(private tiradaService: TiradaService,
private route: ActivatedRoute ) {
this.idTirada = this.route.snapshot.paramMap.get('id');
this.tiradaService.getTirada( this.idTirada )
.subscribe( resp => {
this.tirada = resp;
console.log (resp)
});
}
我使用 tiraradaService 读取 Firebase,它返回一个包含信息的数组
{arc: "-M9TuPty-oGAmgmnh0WL", camp: "massia", data: "2020-06-14T09:47:32.878Z", plens: "0", punts: "135", …}
我在 HTML 中显示它
<ion-card-header>
<ion-card-subtitle>{{ tirada.arc }}</ion-card-subtitle>
</ion-card-header>
但是它给了我这个错误,如果我多次刷新信息它就会消失,就好像我在数据之前加载了 HTML 而不知道从哪里获取信息一样
core.js:6228 ERROR Error: Uncaught (in promise): TypeError: Cannot read property 'arc' of undefined
1个回答
当 Angular 在
tirada
获得赋值之前呈现视图时,会导致异常。当
tirada
为 null 或未定义时,
?.
停止评估,这通常发生在异步获取数据时,例如从服务器获取数据,这可能需要相当长的时间。
下次变更检测识别出变更时,将重新评估绑定。当
tirada
具有值时,它将绑定
tirada.arc
。
因此,请在模板 HTML 中使用
?.
。
<ion-card-header>
<ion-card-subtitle>{{ tirada?.arc }}</ion-card-subtitle>
</ion-card-header>
Maddy Blacklisted
2020-06-23