Ionic Angular Uncaught(承诺)错误

时间:2018-03-24 10:22:11

标签: angular ionic2

我是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]:

我不知道这两个错误是否相关。

2 个答案:

答案 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],
  ..
})

Stackblitz

答案 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);