解决组件不返回数据
Resolve not returning data to component
我有一个问题,解析数据在组件中显示为未定义。
下面是我的解析代码
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
我也在路由模块中添加了解析。
请指导
你 return 使用 then 的 Promise。 then 应该 return 一个进一步使用的值,而你没有。因此,Promises 值在 then 之后未定义。
您可以简单地删除 then 或者您再次 return 该值。
.then(data => { console.log(data); return data; }); // or remove this line
我有一个问题,解析数据在组件中显示为未定义。
下面是我的解析代码
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
我也在路由模块中添加了解析。
请指导
你 return 使用 then 的 Promise。 then 应该 return 一个进一步使用的值,而你没有。因此,Promises 值在 then 之后未定义。
您可以简单地删除 then 或者您再次 return 该值。
.then(data => { console.log(data); return data; }); // or remove this line