Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 角度ngOnChanges无法第一次读取属性_Angular - Fatal编程技术网

Angular 角度ngOnChanges无法第一次读取属性

Angular 角度ngOnChanges无法第一次读取属性,angular,Angular,我试图从组件的输入访问数据,并使用ngOnChanges进行访问,但在控制台中抛出错误,如“无法读取未定义的属性'name'”,但数据加载正确 调试后,此问题仅在页面刷新时发生。第一次数据未定义,第二次数据正在加载 我做错了什么 @Input() data: any; ngOnChanges(changes: any) { if(changes['data']) { this.dispEn = this.data.name.en; this.dispDe =

我试图从组件的输入访问数据,并使用ngOnChanges进行访问,但在控制台中抛出错误,如
“无法读取未定义的属性'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
}

非常感谢。工作正常。这仍然会导致“无法读取未定义的属性‘名称’”。需要检查数据的值。