Существует 3 различных элемента UI / UX, которые влияют на данные, которые пользователь видит в приложении.Первый - это разрешенные данные из распознавателя.Второй - это объединенные данные из действия бесконечной прокрутки.И третий (фильтр) заменяет все данные другим набором данных того же типа.
Пока что я могу объединить разрешенные и бесконечные данные для достижения плавной прокрутки.Это мой код.
this.referrals$
- это наблюдаемый поток, который отображается в DOM.
//Resolved data from this.activatedRoute.data
const resolvedReferrals$ = this._getResolvedData()
.pipe(map((response: ReferralSearchResponse ) => response.data));
this.referrals$ = merge(resolvedReferrals$, this._newReferrals$)
.pipe(tap(console.log), scan((acc, val) => acc.concat(...val), []), tap(console.log));
//infinite scroll action where this._newReferrals$ is a Behavior Subject.
getMoreReferrals(event: any) {
this.getReferrals()
.subscribe((values: ReferralSummary[]) => {
this._newReferrals$.next(values);
event.target.complete();
});
}
Я использую ту же навигацию по страницам, чтобы получить отфильтрованные данные черезresolver.
this._router.navigate([], { relativeTo: this._activatedRoute, queryParams: this.filterCriteria })
Когда я применяю фильтр и распознаватель отправляет мне новые данные, эти данные добавляются в конец списка вместо замены списка.Я понимаю, почему это так.Однако я не знаю, как именно это исправить RxJS .