ionic 5 : TypeError: 不能读取未定义的属性'subscribe'。

我在 IONIC 5 中有这个服务。


import { HttpClient } from '@angular/common/http';
.
.
.
getPlaces(placeId: string) {
return this.httpClient.get(
        `https://test.com/offered-place/${placeId}.json`)
}
.
.
.

在我的组件中,当我尝试调用 may service 的函数并订阅它时。


this.myService.getPlaces().subscribe(()=>{})...

我得到了一个错误。TypeError.Canot read property ‘subscribe’ of undefined: Cannot read property ‘subscribe’ of undefined.


但当我尝试在服务中订阅时,它就能正常工作了!

ps:

  • IONIC 5

我的服务被注入到我的组件的构造函数中(我在那里得到了我的错误)

我的服务是有注释的。

@Injectable({ providedIn: ‘root’})

  • IDE Visual Code

先谢谢你

解决方案:

在组件中,这是不可能的,因为getPlaces函数需要placeID,而在组件中,当你在调用

this.myService.getPlaces().subscribe(()=>{})...

所以你必须把placeID传到这里,然后像我写的结果一样,通过添加一个引用来订阅它。现在在result中,你将拥有来自api的数据。

this.myService.getPlaces(placeID should be passed here).subscribe((result)=>{console.log(result);})...

并在服务中添加Observale到函数中。

getPlaces(placeId: string): Observable<any> {
return this.httpClient.get(
        `https://test.com/offered-place/${placeId}.json`)
}

给TA打赏
共{{data.count}}人
人已打赏
解决方案

如何在vim中通过命令向下滚动而不用方向键?

2022-4-22 10:08:53

解决方案

复制字典的正确方法是什么?

2022-4-22 10:08:55

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索