我有一个组件,使用路由器级别的解析器在成功解决数据时加载(路由)。从服务器检索的数据将传递给子组件。数据被解析并相应地传递,但子组件抛出错误
尝试从未定义的
进行访问
场景:
父组件HTML:
<parent>
<child [_data]="dataFromResolver"></child>
</parent>
Parent Component.ts
export class Parent implements OnInit {
dataFromResolver: any;
constructor(private route: ActivatedRoute) {
}
ngOnInit() {
this.route.data.forEach((data: any) => {
this.dataFromResolver = data;
});
}
}
解析器服务:
resolve(route: ActivatedRouteSnapshot): Observable<boolean | any> {
return this.parentService.getData().map(output => {
if (output) {
return output;
} else {
this.router.navigate(['/login']);
return false;
}
});
}
Child Compnent.ts
@Input() _data(value: any) {
this.data = value;
}
data: any;
子组件HTML
<p>{{data.name}}</p>
还相应地配置了路由,我可以看到浏览器工具的网络选项卡中的数据。
如果我遗失了什么,请告诉我。
答案 0 :(得分:0)
在set
之后发现错过@Input()
的错误。一个大错的错误。