Фильтр Observable<любой []> с Observable<строка>
Используя Angular 7, у меня есть поисковый вход, который подключен к Observable<string>
searchValue = new FormControl("");
this.searchChanges$ = searchValue.valueChanges
у меня есть другой Observable<Record[]>
который я получаю из firebase, я пытаюсь отфильтровать массив строкой, которую я получаю из результатов поиска, используя:
return this.searchChanges$.pipe(
withLatestFrom(recordsObserver, (searchValue, records) => {
return records.filter(record => record.title.includes(searchValue));
})
);
Проблема в том, что список не обновляется до тех пор, пока что-то не будет изменено во входных данных. Как лучше всего это решить?
1 ответ
Когда обе наблюдаемые предназначены для использования в качестве основного источника для вашей новой наблюдаемой, вы должны скорее использовать сочетании с последним с последним с последним. Таким образом, когда одна из ваших исходных наблюдаемых сработает, сработает и ваша новая комбинированная наблюдаемая.
Другим удобным инструментом, когда дело доходит до таких сценариев использования, является использование startWith