Пагинация не извлекает данные, если вы уже посетили страницу - PullRequest
0 голосов
/ 21 апреля 2020

Я реализовал нумерацию страниц для таблицы. Каждый раз, когда я меняю страницу, новые данные извлекаются из бэкэнда и сохраняются в локальном хранилище (Ngrx), затем я выбираю эти данные с помощью селекторов (Ngrx) и делю их на куски в зависимости от размера страницы и страницы.

Например:

const dataFromStore = [1,2,3,4,5,6,7,8,9,10]
const pageSize = 5;
const page = 1;
tableDisplays = [1,2,3,4,5]

Мне интересно, как проверить, была ли посещенная страница, чтобы не получать данные снова, потому что я храню их в Магазине (Ngrx). Картинка ниже просто показывает результаты моего путешествия по страницам.

enter image description here

Я думал о ReplaySubject и массиве, где хранятся номера посещенных страниц. Каждый раз, когда я захожу на страницу, звоните next(page), а затем в subscribe массив заданий new Set(), чтобы иметь уникальные страницы.

Любые идеи приветствуются.

1 Ответ

0 голосов
/ 21 апреля 2020

Вот как я решил эту проблему

  1. Сначала создал Набор для посещенных страниц магазина: const arrayVisitedPages = new Set();
  2. Затем я проверяю, нет ли в массиве этой страницы, затем выбираю данные еще извлекаются из хранилища:

`

if(![...this.arrayVisitedPages].includes(page)) {
          this.arrayVisitedPages.add(page);
          * fetch data *
          }));

И это во многом.

...