Anda perlu mengimpor map
operator:
import 'rxjs/add/operator/map'
Atau lebih umum:
import 'rxjs/Rx';
Perhatian: Untuk versi RxJS 6.x.x
dan di atasnya, Anda harus menggunakan operator yang dapat pipa seperti yang ditunjukkan dalam cuplikan kode di bawah ini:
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);
});
}
}
Ini disebabkan oleh tim RxJS menghapus dukungan untuk menggunakan Lihat perubahan pada changelog RxJS untuk info lebih lanjut.
Dari changelog:
operator : operator Pipeable sekarang harus diimpor dari rxjs suka begitu: import { map, filter, switchMap } from 'rxjs/operators';
. Tidak ada impor dalam.
Observable
kelas? Seperti ini:import {Observable} from 'rxjs/Observable';
atauimport {Observable} from 'rxjs/Rx';
?npm install rxjs-compat
, daripada mengimpormap
operator.Mengunjungi kembali ini karena solusi saya tidak tercantum di sini.
Saya menjalankan Angular 6 dengan rxjs 6.0 dan mengalami kesalahan ini.
Inilah yang saya lakukan untuk memperbaikinya:
aku berubah
secara sederhana:
Saya menemukan perbaikannya di sini:
https://github.com/angular/angular/issues/15548#issuecomment-387009186
sumber
import { map } from 'rxjs/operators';
.catch
, kita bisa menggunakancatchError
like.pipe(catchError(this.handleError))
?cukup tulis perintah ini di terminal kode vs proyek Anda dan restart proyek.
Anda perlu mengimpor
map
operator dengan menulis ini:sumber
Untuk 7v Sudut
Perubahan
Untuk
Dan
sumber
Saya memiliki masalah yang sama dengan Angular 2.0.1 karena saya mengimpor dari diamati
Saya menyelesaikan masalah saya dalam mengimpor Observable dari jalur ini sebagai gantinya
sumber
Observable
(termasuk yang tidak Anda gunakan) ke dalam bundel. Sebagai gantinya, Anda harus mengimpor masing-masing operator secara individual. Saya merekomendasikan menggunakan "operator yang dapat diijinkan", yang diperkenalkan pada RxJS v5.5 untuk mendukung pengocokan pohon yang lebih baik.Dalam rxjs 6 penggunaan peta operator telah diubah sekarang Anda harus menggunakannya seperti ini.
Untuk referensi https://www.academind.com/learn/javascript/rxjs-6-what-changed/#operators-update-path
sumber
RxJS v6
akan perlu menggunakan.pipe()
atau tidak ada operator yang akan langsung bekerja dari Observable. Anda akan melihat kesalahan seperti,Property 'share' does not exist on type 'Observable<{}>'
cukup instal rxjs-compat dengan mengetikkan terminal:
lalu impor:
sumber
Di Angular 7 terbaru . *. * , Anda dapat mencoba ini hanya sebagai:
Dan kemudian Anda dapat menggunakan ini
methods
sebagai berikut:Lihat demo ini untuk lebih jelasnya.
sumber
Dalam kasus saya, tidak cukup hanya menyertakan peta dan janji:
Saya memecahkan masalah ini dengan mengimpor beberapa komponen rxjs sebagaimana direkomendasikan oleh dokumentasi resmi :
1) Impor pernyataan dalam satu file app / rxjs-operator.ts:
2) Impor rxjs-operator itu sendiri dalam layanan Anda:
sumber
Dalam fungsi di atas Anda dapat melihat saya tidak menggunakan res.json () karena saya menggunakan HttpClient. Ini berlaku res.json () secara otomatis dan mengembalikan Observable (HttpResponse <string>). Anda tidak perlu lagi memanggil fungsi ini sendiri setelah sudut 4 di HttpClient.
sumber
Saya memiliki masalah yang sama, saya menggunakan Visual studio 2015 yang memiliki versi naskah yang lebih lama.
Setelah memutakhirkan ekstensi masalah ini terselesaikan.
Unduh Tautan
sumber
Saya menggunakan Angular 5.2 dan ketika saya menggunakannya
import 'rxjs/Rx';
melempar kesalahan lint berikut: TSLint: Impor ini masuk daftar hitam, impor submodule sebagai gantinya (impor-daftar hitam)Lihat tangkapan layar di bawah ini:
SOLUSI: Memecahkannya dengan mengimpor hanya operator yang saya butuhkan . Contoh berikut:
Jadi perbaikannya adalah mengimpor hanya operator yang diperlukan saja.
sumber
Cukup instal rxjs-compat untuk menyelesaikan masalah
Dan impor seperti di bawah ini
sumber
Pertama-tama jalankan instalasi seperti di bawah ini:
Sekarang Anda perlu mengimpor
rxjs
diservice.ts
:Voila! masalah telah diperbaiki.
sumber
cukup jalankan
npm install --save rxjs-compat
itu memperbaiki kesalahan.Disarankan di sini
sumber
Saya mencoba semua jawaban yang mungkin diposting di atas tidak ada yang berhasil,
Semoga ini membantu seseorang.
sumber
Saya juga menghadapi kesalahan yang sama. Salah satu solusi yang berhasil bagi saya adalah menambahkan baris berikut di file service.ts Anda alih - alih
import 'rxjs/add/operator/map'
:Sebagai contoh, app.service.ts saya setelah debugging seperti,
sumber
Jika setelah mengimpor impor 'rxjs / add / operator / map' atau impor 'rxjs / Rx' juga Anda mendapatkan kesalahan yang sama kemudian mulai ulang editor kode studio visual Anda, kesalahan akan diselesaikan.
sumber
untuk semua pengguna linux yang mengalami masalah ini, periksa apakah folder rxjs-compat terkunci. Saya punya masalah yang sama persis dan saya masuk terminal, menggunakan sudo su untuk memberikan izin ke seluruh folder rxjs-compat dan sudah diperbaiki. Itu dengan asumsi Anda mengimpor
dalam file project.ts di mana kesalahan .map asli terjadi.
sumber
Gunakan
map
fungsi dalampipe
fungsi dan itu akan menyelesaikan masalah Anda. Anda dapat memeriksa dokumentasinya di sini .sumber
npm instal rxjs @ 6 rxjs-compat @ 6 --save
sumber
jalankan perintah
Saya hanya mengimpor
restart kode vs, masalah terpecahkan.
sumber
Versi baru angular tidak mendukung .map Anda harus menginstal ini melalui install cmd npm - save rxjs-compat melalui ini yang dapat Anda nikmati dengan teknik lama. Catatan: jangan lupa untuk mengimpor baris ini.
sumber