web-dev-qa-db-fra.com

Mise à niveau angulaire 5 à 6: la propriété "carte" n'existe pas sur le type Observable

J'ai mis à niveau mon application angulaire de la version 5 à la version 6 et j'obtiens cette erreur du code suivant.

  const request = this.evidenceService.get().map((res) => res.data)
                .catch(error => Observable.of(null));

La propriété 'map' n'existe pas sur le type 'Observable'.

14
Kay

Le chaînage des opérateurs a été remplacé par l'utilisation de .pipe () dans RXJS v6. Vous devez suivre le chemin de migration recommandé pour RXJS . De plus, l'opérateur catch a été renommé en catchError.

Voici comment cela devrait être fait maintenant:

const request = this.evidenceService.get().pipe(
    map((res) => res.data)),
    catchError(error => Observable.of(null))
  );
42
Jens Habegger

selon https://www.academind.com/learn/javascript/rxjs-6-what-changed/

dans le passé

import 'rxjs/add/operator/map'

myObservable
  .map(data => data * 2)
  .subscribe(...);

à présent

import { map } from 'rxjs/operators';

myObservable
  .pipe(map(data => data * 2))
  .subscribe(...);
24
Dulanga Heshan

Cela a résolu mon problème Voici le code:

import { map } from "rxjs/operators";

********************************************* Exemple ** ci-dessous ***************************************

getPosts(){
this.http.get('http://jsonplaceholder.typicode.com/posts')
.pipe(map(res => res.json()));
}
}
5
Greko2015 GuFn

Utilisation

.pipe(map((res) => res.data))

au lieu de 

.map((res) => res.data)
0
Pullat Junaid