我是Ionic的新手。
关于Lynda的This课程是我对Ionic的介绍,我一直在成功地学习教师教程,直到他介绍提供者。我的提供者文件如下:
import 'rxjs/add/operator/map';
我的 home.ts 文件如下:
{{1}}
当应用加载时,我收到以下错误:
打字稿错误
属性'json'在'Object'类型上不存在。
的src /提供商/人数据/人data.ts
返回 this.http.get( 'https://randomuser.me/api/?results=10&nat=us&seed=d07ade5f51ff3011') .map(res => res.json())。map(res => res.results);
This帖子建议引入{{1}}作为解决方案。
但是,导入并不能解决我的问题。
额外的并发症:
在浏览器刷新几次后,错误会更改为以下异常,但我无法预测何时发生,也无法控制何时发生错误:
离子错误:未捕获(在承诺中):错误: StaticInjectorError(AppModule)[PeopleDataProvider - >的HttpClient]:
我不知道这两个错误是否相关。
答案 0 :(得分:1)
您不必使用map
并在回复中致电.json
,只有当您使用旧版Http
代替HttpClient
时才需要这些回复
所以你的方法应该是这样的
<强> PeopleDataProvider 强>
import 'rxjs/add/operator/map';
..
getPeople(){
return this.http.get<any>('https://randomuser.me/api/?results=10&nat=us&seed=d07ade5f51ff3011')
.map(res => res.results);
}
至于以下错误,
离子错误:未捕获(在承诺中):错误:StaticInjectorError(AppModule)[PeopleDataProvider - &gt;的HttpClient]:
确保您已在HttpClientModule
中导入AppModule
。
import {HttpClientModule} from '@angular/common/http'
@NgModule({
imports: [ .. , HttpClientModule],
..
})
答案 1 :(得分:1)
由于您使用的是HttpClient,因此很明显您正在使用Angular 4.3+。在此版本之后.map amd .json()已被删除.. 试试这个---
getPeople(){
return this.http.get('https://randomuser.me/api/?results=10&nat=us&seed=d07ade5f51ff3011');
}
删除 -
.map(res => res.json())
.map(res => res.results);