ionic 5 : TypeError: 不能读取未定义的属性'subscribe'。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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`)
}
以上是关于ionic 5 : TypeError: 不能读取未定义的属性'subscribe'。的主要内容,如果未能解决你的问题,请参考以下文章
NgZone/Angular2/Ionic2 TypeError:无法读取未定义的属性“运行”
Ionic3测试:TypeError:无法读取undefined的属性'subscribe'
ionic native http get return typeError - 无法读取未定义的属性“匹配”
未捕获(承诺):TypeError:无法读取未定义的属性“创建”(离子 3.9,Angularjs 5.0.3)