Angular 角度ngOnChanges无法第一次读取属性
我试图从组件的输入访问数据,并使用ngOnChanges进行访问,但在控制台中抛出错误,如Angular 角度ngOnChanges无法第一次读取属性,angular,Angular,我试图从组件的输入访问数据,并使用ngOnChanges进行访问,但在控制台中抛出错误,如“无法读取未定义的属性'name'”,但数据加载正确 调试后,此问题仅在页面刷新时发生。第一次数据未定义,第二次数据正在加载 我做错了什么 @Input() data: any; ngOnChanges(changes: any) { if(changes['data']) { this.dispEn = this.data.name.en; this.dispDe =
“无法读取未定义的属性'name'”
,但数据加载正确
调试后,此问题仅在页面刷新时发生。第一次数据未定义,第二次数据正在加载
我做错了什么
@Input() data: any;
ngOnChanges(changes: any) {
if(changes['data']) {
this.dispEn = this.data.name.en;
this.dispDe = this.data.name.en;
}
}
只需对数据进行测试,以便在数据确实有值时捕获
ngOnChanges(changes: any) {
if(changes['data'] && this.data) {
this.dispEn = this.data.name.en;
this.dispDe = this.data.name.en;
}
}
当组件初始化时,首次检查输入时,OnChanges将触发。您可以使用检查更改是否是第一次更改
ngochanges(simpleChanges:simpleChanges){
如果(!simpleChanges.data.isFirstChange()){
...
}
}
最好在此处使用setter
@Input('data) set dataInfo(dnfo: any){
// ToDo method implementation
}
非常感谢。工作正常。这仍然会导致“无法读取未定义的属性‘名称’”。需要检查数据的值。