我正在尝试从输入到组件的数据访问,并使用ngOnChanges进行访问,但是在诸如"can not read property 'name' of undefined"
之类的控制台中引发错误,但数据加载正确。
调试后,仅在刷新页面时才会发生此问题。第一次数据是不确定的,第二次数据正在加载。
我在这里做什么错了?
@Input() data: any;
ngOnChanges(changes: any) {
if(changes['data']) {
this.dispEn = this.data.name.en;
this.dispDe = this.data.name.en;
}
}
答案 0 :(得分:2)
只需对数据进行测试以在数据确实具有值时捕获
ngOnChanges(changes: any) {
if(changes['data'] && this.data) {
this.dispEn = this.data.name.en;
this.dispDe = this.data.name.en;
}
}
答案 1 :(得分:0)
初始化组件时,第一次检查输入时,将触发OnChanges。您可以使用isFirstChange()
检查更改是否是第一个更改 ngOnChanges(simpleChanges: SimpleChanges) {
if (!simpleChanges.data.isFirstChange()) {
...
}
}
答案 2 :(得分:0)
最好在这里使用二传手
@Input('data) set dataInfo(dnfo: any){
// ToDo method implementation
}