【问题标题】:Property 'map' does not exist on type 'Object' - Ionic 3“对象”类型上不存在属性“地图” - Ionic 3
【发布时间】:2018-07-25 16:22:00
【问题描述】:
import { HttpClient } from '@angular/common/http';
import { Injectable } from '@angular/core';
import { Observable } from  'rxjs/Observable';
import 'rxjs/add/operator/map';


@Injectable()
export class User {
  id: number;
  name: string;

  constructor(values: Object = {}){
    Object.assign(this, values);
  }
}
export class RestProvider {

  apiUrl:string = "http://localhost:3000";

  constructor(public http: HttpClient) {
    console.log('Hello RestProvider Provider');
  }

  public  get(): Observable<User[]> {
    return this.http.get(this.apiUrl + '/users').map(users  => {
      return users.map((user) => new  User(user)); //Property 'map' does not exist on type 'Object'.
        }, err => {
          console.log(err);
        });
      }
  public post(user: User): Observable<User>{
    return this.http.post(this.apiUrl + '/users', user).map(response => {
      return new User(response);
    }, err => {
      console.log(err);
    });
  }
  public put(user: User): Observable<User> {
    return this.http.put(this.apiUrl + '/users/' + user.id, user).map(response => {
      return new User(response);
    }, err => {
      console.log(err);
    });
  }
    public delete(userid: number) {
      return this.http.delete(this.apiUrl + '/users/' + userid), 
      err => {
          console.log(err);
        };
  }

}

大家好,

我是 ionic 3 的初学者。 我不知道如何解决这种情况?我试图创建一个包含 http 请求的 rest api。我也是从这里作弊的:https://www.techiediaries.com/ionic-http-client/

我认为问题在于该行有第三个属性。所有其他人都有一两个。所以我应该在某个地方添加一些东西,但是在哪里?

【问题讨论】:

  • 你能在看到错误的地方 console.log(users) 吗?

标签: ionic3 httprequest


【解决方案1】:

我想我解决了。这是我解决问题的方法。

import { HttpClient } from '@angular/common/http';
import { Injectable } from '@angular/core';
import { Observable } from  'rxjs/Observable';
import 'rxjs/add/operator/map';

export class User { //Put the class out if @injectable
      id: number;
      name: string;

      constructor(values: Object = {}){
        Object.assign(this, values);
      }
    }

@Injectable()
export class User {
  id: number;
  name: string;

  constructor(values: Object = {}){
    Object.assign(this, values);
  }
}
export class RestProvider {

  apiUrl:string = "http://localhost:3000";

  constructor(public http: HttpClient) {
    console.log('Hello RestProvider Provider');
  }

  public  get(): Observable<User> {  //Changed the way I handled the get request a little bit
    return this.http.get(this.apiUrl + 'users').map(users  => {
  return users as User;
        }, err => {
          console.log(err);
        });
      }
  public post(user: User): Observable<User>{
    return this.http.post(this.apiUrl + '/users', user).map(response => {
      return new User(response);
    }, err => {
      console.log(err);
    });
  }
  public put(user: User): Observable<User> {
    return this.http.put(this.apiUrl + '/users/' + user.id, user).map(response => {
      return new User(response);
    }, err => {
      console.log(err);
    });
  }
    public delete(userid: number) {
      return this.http.delete(this.apiUrl + '/users/' + userid), 
      err => {
          console.log(err);
        };
  }

}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-11-04
    • 2019-12-31
    • 2018-11-17
    • 1970-01-01
    • 2018-10-21
    • 2017-01-11
    • 2020-05-01
    • 1970-01-01
    相关资源
    最近更新 更多