如何在 Angular 6 中使用新的 RXJS 6 pipe/map return 解析数据?
How do I return the Resolved Data with the new RXJS 6 pipe/map in Angular 6?
如何在 Angular 6 中使用新的 RXJS 6 pipe/map return 解析数据?
@Injectable()
export class RecentDataResolver implements Resolve<RecentData> {
constructor(
public data: DataService,
private api: ApiService) {}
resolve(
route: ActivatedRouteSnapshot,
state: RouterStateSnapshot
): Observable<any> {
this.api.get('/data/recent').pipe(map(response => {
return response as RecentData;
}));
}
}
我在组件里订阅时解析到的数据是null
:
constructor(private route: ActivatedRoute, public data: DataService) {
this.route.data.subscribe(routeData => {
this.recent = routeData.recent;
console.log('data', routeData.recent);
});
}
您必须 return 从解析器函数中观察到一个。
您遗漏了 return 语句。
return this.api.get('/data/recent').pipe(map(response => {
return response as RecentData;
}));
如果您没有在 get()
中执行任何逻辑,您可以简单地 return 将其作为
resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<any> {
return this.api.get<RecentData>('/data/recent');
}
如何在 Angular 6 中使用新的 RXJS 6 pipe/map return 解析数据?
@Injectable()
export class RecentDataResolver implements Resolve<RecentData> {
constructor(
public data: DataService,
private api: ApiService) {}
resolve(
route: ActivatedRouteSnapshot,
state: RouterStateSnapshot
): Observable<any> {
this.api.get('/data/recent').pipe(map(response => {
return response as RecentData;
}));
}
}
我在组件里订阅时解析到的数据是null
:
constructor(private route: ActivatedRoute, public data: DataService) {
this.route.data.subscribe(routeData => {
this.recent = routeData.recent;
console.log('data', routeData.recent);
});
}
您必须 return 从解析器函数中观察到一个。
您遗漏了 return 语句。
return this.api.get('/data/recent').pipe(map(response => {
return response as RecentData;
}));
如果您没有在 get()
中执行任何逻辑,您可以简单地 return 将其作为
resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<any> {
return this.api.get<RecentData>('/data/recent');
}