【发布时间】:2021-03-08 03:29:29
【问题描述】:
我遇到了一个问题,即解析数据在组件中显示为未定义。
下面是我的解决代码
export class MyResolve implements Resolve<any> {
constructor(private dataServ: DataService) { }
resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Promise<any> {
return forkJoin([
this.dataServ.getA(),
this.dataServ.getB(),
this.dataServ.getC()
]).pipe(map(response => {
console.log(response)
return response;
})).toPromise().then(data => { console.log(data) });
}
}
我可以在控制台中看到数据。 但是当我在组件中使用数据时,它显示未定义
下面是组件中的代码
var test = this._route.snapshot.data;
console.log(test);
在哪里 _route:ActivatedRoute
我也在路由模块中添加了解析。
请指导
【问题讨论】:
-
有点不相关,但请注意,使用解析器会阻止您在单击链接后要访问的组件的呈现,直到获取数据为止。如果您最终获取多个端点,我认为可能需要一些时间来解决,因此会导致糟糕的用户体验。更多关于这里的主题:stackoverflow.com/questions/49054232/…
标签: angular promise rxjs resolve