我正在面对Angular 4中的问题,尝试在点击“用户链接配置文件”时获取特定用户的详细信息。
但是我无法订阅我的函数,因为switchMap的返回值是AnonymousSubject而不是Observable:
ngOnInit() {
this.route.paramMap.switchMap((params: ParamMap) => this.getHero(+params.get('id')))
.subscribe(hero => {
this.hero = hero;
})
}
以下是getHero功能:
getHero(id: number) {
return this.getHeroes().find(hero=>hero.id===id);
}
getHeroes()函数返回json数据的简单对象,其中包含有关英雄(id和name)的详细信息。
感谢您的任何帮助/建议!
答案 0 :(得分:0)
switchMap希望您返回Observable,Promise,Array或Iterable。您的getHero方法正在返回一个对象。尝试让它返回带有对象值的observable。
getHero(id: number) {
let hero = this.getHeroes().find(hero=>hero.id===id);
return Observable.of(hero);
}