Свойство «combineLatest» не существует для типа «typeof Observable»
Я пытаюсь добавить функцию InstantSearch на свой сайт. Я использую Angular 12.2 и работаю с базой данных firestore с индексом «book-data». Я использую следующий код в своем поисковом компоненте:
import { Component, OnInit } from '@angular/core';
import { AngularFirestore } from 'angularfire2/firestore';
import { Subject } from 'rxjs';
import { Observable } from 'rxjs';
@Component({
selector: 'app-search',
templateUrl: './search.component.html',
styleUrls: ['./search.component.css'],
})
export class SearchComponent implements OnInit {
searchterm: string;
startAt = new Subject();
endAt = new Subject();
titel;
startobs = this.startAt.asObservable();
endobs = this.endAt.asObservable();
constructor(private afs: AngularFirestore) {}
ngOnInit() {
Observable.combineLatest(this.startobs, this.endobs).subscribe((value) => {
this.firequery(value[0], value[1]).subscribe((titel) => {
this.titel = titel;
});
});
}
search($event) {
let q = $event.target.value;
this.startAt.next(q);
this.endAt.next(q + '\uf8ff');
}
firequery(start, end) {
return this.afs
.collection('book-data', (ref) =>
ref.limit(4).orderBy('auflage').startAt(start).endAt(end)
)
.valueChanges();
}
}
Я импортировал Subject и Observable из Rxjs, также в app-module.ts. Я также пытался получить combLatest из rxjs/Rx и установил rxjs-compat, но всякий раз, когда я это делаю, элемент combLatest в коде перечеркивается, и я больше не могу запускать angular с помощью ng serve --open.
Я благодарен за любые дальнейшие предложения :)
1 ответ
Я использую combLatest как отдельную функцию в своем коде. Возможно, вы должны использовать его следующим образом:
import {combineLatest} from 'rxjs';
combineLatest([...yourObserableList]);