Sie müssen den map
Operator importieren :
import 'rxjs/add/operator/map'
Oder allgemeiner:
import 'rxjs/Rx';
Hinweis: Für Versionen von RxJS 6.x.x
und höher müssen Sie pipeable Operatoren verwenden, wie im folgenden Code-Snippet gezeigt:
import { map } from 'rxjs/operators';
import { HttpClient } from '@angular/common/http';
// ...
export class MyComponent {
constructor(private http: HttpClient) { }
getItems() {
this.http.get('https://example.com/api/items').pipe(map(data => {})).subscribe(result => {
console.log(result);
});
}
}
Dies wird dadurch verursacht, dass das RxJS-Team die Unterstützung für die Verwendung entfernt. Weitere Informationen finden Sie in den wichtigsten Änderungen im Änderungsprotokoll von RxJS.
Aus dem Changelog:
Operatoren : Pipeable-Operatoren müssen jetzt wie folgt aus rxjs importiert werden : import { map, filter, switchMap } from 'rxjs/operators';
. Keine tiefen Importe.
Observable
Klasse? So:import {Observable} from 'rxjs/Observable';
oderimport {Observable} from 'rxjs/Rx';
?npm install rxjs-compat
, als denmap
Operator importieren .Wiederholen Sie diesen Vorgang, da meine Lösung hier nicht aufgeführt ist.
Ich verwende Angular 6 mit rxjs 6.0 und bin auf diesen Fehler gestoßen.
Folgendes habe ich getan, um das Problem zu beheben:
ich habe mich verändert
einfach sein:
Ich habe das Update hier gefunden:
https://github.com/angular/angular/issues/15548#issuecomment-387009186
quelle
import { map } from 'rxjs/operators';
.catch
können wircatchError
gerne verwenden.pipe(catchError(this.handleError))
?Schreiben Sie diesen Befehl einfach in das vs code-Terminal Ihres Projekts und starten Sie das Projekt neu.
Sie müssen den
map
Operator importieren , indem Sie Folgendes schreiben:quelle
Für den Angular 7v
Veränderung
Zu
Und
quelle
Ich hatte das gleiche Problem mit Angular 2.0.1, weil ich Observable aus importierte
Ich behebe mein Problem beim Importieren von Observable von diesem Pfad
quelle
Observable
(einschließlich derjenigen, die Sie nicht verwenden) in das Bundle importiert . Stattdessen sollten Sie jeden Operator einzeln importieren. Ich empfehle die Verwendung von "vermietbaren Operatoren", die in RxJS v5.5 eingeführt wurden, um ein besseres Baumschütteln zu unterstützen.In rxjs 6 wurde die Verwendung des Kartenoperators geändert. Jetzt müssen Sie sie wie folgt verwenden.
Als Referenz https://www.academind.com/learn/javascript/rxjs-6-what-changed/#operators-update-path
quelle
RxJS v6
verwenden muss.pipe()
oder keiner der Operatoren direkt vom Observable aus arbeitet. Sie sehen einen Fehler wie,Property 'share' does not exist on type 'Observable<{}>'
Installieren Sie einfach rxjs-compatible, indem Sie terminal eingeben:
dann importieren:
quelle
Im neuesten Angular 7. *. * Können Sie dies einfach wie folgt versuchen:
Und dann können Sie diese
methods
wie folgt verwenden:Überprüfen Sie diese Demo für weitere Details.
quelle
In meinem Fall würde es nicht ausreichen, nur Karte und Versprechen aufzunehmen:
Ich habe dieses Problem gelöst, indem ich mehrere rxjs-Komponenten als offizielle Dokumentation importiert habe empfohlen:
1) Importieren Sie Anweisungen in eine Datei app / rxjs-operator.ts:
2) Importieren Sie den rxjs-Operator selbst in Ihren Dienst:
quelle
In der obigen Funktion können Sie sehen, dass ich res.json () nicht verwendet habe, da ich HttpClient verwende. Es wendet res.json () automatisch an und gibt Observable (HttpResponse <string>) zurück. Sie müssen diese Funktion nach Winkel 4 in HttpClient nicht mehr selbst aufrufen.
quelle
Ich hatte das gleiche Problem, ich verwendete Visual Studio 2015, das eine ältere Version von Typoskript hatte.
Nach dem Upgrade der Erweiterung wurde das Problem behoben.
Download-Link
quelle
Ich verwende Angular 5.2 und wenn ich
import 'rxjs/Rx';
es verwende, wird der folgende Flusenfehler ausgegeben: TSLint: Dieser Import ist auf der schwarzen Liste. Importieren Sie stattdessen ein Submodul (Import-Blacklist).Siehe den Screenshot unten:
LÖSUNG: Es wurde behoben, indem nur die Operatoren importiert wurden, die ich brauchte . Beispiel folgt:
Die Lösung wäre also, nur die erforderlichen Operatoren zu importieren.
quelle
Installieren Sie einfach rxjs-compatible , um das Problem zu lösen
Und importiere es wie unten
quelle
Führen Sie zunächst die Installation wie folgt aus:
Jetzt müssen Sie importieren
rxjs
inservice.ts
:Voila! Das Problem wurde behoben.
quelle
Einfach ausführen
npm install --save rxjs-compat
, behebt den Fehler.Es wird hier empfohlen
quelle
Ich habe alle möglichen Antworten ausprobiert, von denen keine funktioniert hat.
Möge es jemandem helfen.
quelle
Auch ich hatte den gleichen Fehler. Eine Lösung, die für mich funktioniert hat, war das Hinzufügen der folgenden Zeilen in Ihrer service.ts- Datei anstelle von
import 'rxjs/add/operator/map'
:Zum Beispiel war meine app.service.ts nach dem Debuggen wie folgt :
quelle
Wenn nach dem Importieren des Imports 'rxjs / add / operator / map' oder des Imports 'rxjs / Rx' ebenfalls der gleiche Fehler auftritt, starten Sie den Visual Studio-Code-Editor neu. Der Fehler wird behoben.
quelle
Überprüfen Sie für alle Linux-Benutzer, bei denen dieses Problem auftritt, ob der Ordner rxjs-compatible gesperrt ist. Ich hatte genau das gleiche Problem und ging ins Terminal, benutzte das sudo su, um dem gesamten rxjs-kompatiblen Ordner die Erlaubnis zu geben, und es wurde behoben. Vorausgesetzt, Sie haben importiert
in der Datei project.ts, in der der ursprüngliche .map-Fehler aufgetreten ist.
quelle
Verwenden Sie die
map
Funktion inpipe
Funktion und es wird Ihr Problem lösen. Sie können die Dokumentation hier überprüfen .quelle
npm installiere rxjs @ 6 rxjs-compatible @ 6 --save
quelle
Führen Sie den Befehl aus
Ich importiere nur
Starten Sie den vs-Code neu, Problem behoben.
quelle
Die eckige neue Version unterstützt keine .map, die Sie über cmd npm install installieren müssen - speichern Sie rxjs-kompatibel über diese, die Sie mit alter Technik genießen können. Hinweis: Vergessen Sie nicht, diese Zeilen zu importieren.
quelle