Musisz zaimportować map
operatora:
import 'rxjs/add/operator/map'
Lub bardziej ogólnie:
import 'rxjs/Rx';
Uwaga: W przypadku wersji RxJS 6.x.x
i nowszych konieczne będzie użycie operatorów potokowych, jak pokazano w poniższym fragmencie kodu:
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);
});
}
}
Jest to spowodowane usunięciem przez zespół RxJS obsługi używania Zobacz przełamujące zmiany w dzienniku zmian RxJS, aby uzyskać więcej informacji.
Z dziennika zmian:
Operatorzy : operatorzy Pipeable musi teraz być importowane z rxjs tak: import { map, filter, switchMap } from 'rxjs/operators';
. Bez głębokiego importu.
Observable
klasę? Jak to:import {Observable} from 'rxjs/Observable';
czyimport {Observable} from 'rxjs/Rx';
?npm install rxjs-compat
, niż importmap
operatora.Ponownie odwiedzam, ponieważ mojego rozwiązania nie ma tutaj.
Używam Angulara 6 z rxjs 6.0 i napotkałem ten błąd.
Oto, co zrobiłem, aby to naprawić:
Zmieniłam
po prostu być:
Znalazłem poprawkę tutaj:
https://github.com/angular/angular/issues/15548#issuecomment-387009186
źródło
import { map } from 'rxjs/operators';
.catch
, możemy użyćcatchError
jak.pipe(catchError(this.handleError))
?po prostu napisz to polecenie w terminalu vs vs twojego projektu i zrestartuj projekt.
Musisz zaimportować
map
operatora, pisząc to:źródło
Dla Angulara 7v
Zmiana
Do
I
źródło
Miałem ten sam problem z Angularem 2.0.1, ponieważ importowałem Observable
Rozwiązuję problem z importowaniem Observable z tej ścieżki
źródło
Observable
(w tym tych, których nie używasz) do pakietu. Zamiast tego należy importować każdego operatora osobno. Polecam użycie „operatorów lettable”, które zostały wprowadzone w RxJS v5.5, aby wspierać lepsze wstrząsanie drzewem.W rxjs 6 użycie operatora map zostało zmienione, teraz musisz go używać w ten sposób.
W celach informacyjnych https://www.academind.com/learn/javascript/rxjs-6-what-changed/#operators-update-path
źródło
RxJS v6
będzie musiał użyć.pipe()
lub żaden z operatorów nie będzie działał bezpośrednio z Observable. Zobaczysz błąd, taki jak:Property 'share' does not exist on type 'Observable<{}>'
po prostu zainstaluj rxjs-kompatybil, wpisując terminal:
następnie zaimportuj:
źródło
W najnowszej wersji Angulara 7. *. * Możesz wypróbować to po prostu jako:
A następnie możesz użyć ich
methods
w następujący sposób:Sprawdź to demo, aby uzyskać więcej informacji.
źródło
W moim przypadku nie wystarczy podać tylko mapę i obiecać:
Rozwiązałem ten problem, importując kilka komponentów rxjs zgodnie z oficjalną dokumentacją :
1) Zaimportuj instrukcje do jednego pliku app / rxjs-operators.ts:
2) Importuj samego operatora rxjs do swojej usługi:
źródło
W powyższej funkcji widać, że nie użyłem res.json (), ponieważ używam HttpClient. Automatycznie stosuje res.json () i zwraca Observable (HttpResponse <string>). Nie musisz już wywoływać tej funkcji samodzielnie po kącie 4 w HttpClient.
źródło
Miałem ten sam problem, korzystałem z programu Visual Studio 2015, który miał starszą wersję maszynopisu.
Po aktualizacji rozszerzenia problem został rozwiązany.
Link do pobrania
źródło
Korzystam z Angulara 5.2, a kiedy
import 'rxjs/Rx';
go używam , generuje następujący błąd: TSLint: Ten import jest na czarnej liście, zamiast tego zaimportuj submoduł (import-blacklist)Zobacz zrzut ekranu poniżej:
ROZWIĄZANIE: Rozwiązałem go, importując tylko tych operatorów, których potrzebowałem . Przykład poniżej:
Tak więc poprawka polegałaby na importowaniu tylko niezbędnych operatorów.
źródło
Po prostu zainstaluj rxjs-kompatybil, aby rozwiązać problem
I zaimportuj go jak poniżej
źródło
Najpierw uruchom instalację, jak poniżej:
Teraz trzeba importować
rxjs
wservice.ts
:Voila! Problem został naprawiony.
źródło
po prostu uruchom
npm install --save rxjs-compat
to naprawia błąd.Jest to zalecane tutaj
źródło
Próbowałem wszystkich możliwych odpowiedzi zamieszczonych powyżej, żadna z nich nie działała,
Niech to komuś pomoże.
źródło
Ja też napotkałem ten sam błąd. Jednym z rozwiązań, który pracował dla mnie było, aby dodać następujące linie w swoim service.ts pliku zamiast z
import 'rxjs/add/operator/map'
:Na przykład mój plik app.service.ts po debugowaniu wyglądał następująco:
źródło
Jeśli po zaimportowaniu importu „rxjs / add / operator / map” lub importu „rxjs / Rx” również otrzymujesz ten sam błąd, a następnie uruchom ponownie edytor kodu Visual Studio, błąd zostanie rozwiązany.
źródło
dla wszystkich użytkowników Linuksa, którzy mają ten problem, sprawdź, czy folder rxjs-zgodny jest zablokowany. Miałem dokładnie ten sam problem i wszedłem do terminalu, użyłem sudo su, aby wyrazić zgodę na cały folder rxjs-kompatybilny i zostało to naprawione. To przy założeniu, że zaimportowałeś
w pliku project.ts, w którym wystąpił oryginalny błąd mapy.
źródło
Użyj
map
funkcji wpipe
funkcji, aby rozwiązać problem. Można sprawdzić dokumentację tutaj .źródło
npm install rxjs @ 6 rxjs-kompatybil @ 6 --save
źródło
uruchom polecenie
Po prostu importuję
uruchom ponownie kod vs, problem rozwiązany.
źródło
Nowa, kątowa wersja nie obsługuje .mapy, którą musisz zainstalować za pomocą cmd npm install - zapisz rxjs-compliance dzięki temu możesz cieszyć się starą techniką. Uwaga: nie zapomnij zaimportować tych linii.
źródło