Как реализовать пагинацию?

Добрый день, надо помощь, очередной раз разочаровываюсь в себе, из-за того что нет логического/технического мышления.
Больше нужен совет, чем решение.
есть пагинация 1...3....Х
где Х последняя страница, страниц может быть много
Апи понятное дело не отдает все данные
Я подгружаю первую порцию данных (сколько апи отдает дефолтно) и при пролистывании страниц подгружаю их
Но тут вопрос в том, что изначально у меня доступно 500 страница и пользователь может нажать на неё и начать листать с конца, вопрос как мне подгрузить данные в таком случае и отобразить
сейчас я делаю так
const findReposInex = () => {
    const lastReposIndex = page * pageSize;
    const firstReposIndex = lastReposIndex - pageSize;
    setCurrentRepos(reposRef.current.slice(firstReposIndex, lastReposIndex));
  };

беру страницу на которую кликнул пользователь умножаю на 4 (количество айтемов которое должно отобразится)
Можно просто на странице отображать что есть, но тогда у меня начинается какой-то неупорядоченный хаос
как это можно все сделать, как я должен думать
  • Вопрос задан
  • 115 просмотров
Решения вопроса 1
firedragon
@firedragon
Не джун-мидл-сеньор, а трус-балбес-бывалый.
вспомнилось описание одного api
pgSize - 1...200 (default 20)
start - 0...total
example query https://example.com/api/users?pgSize=50&start=0
example answer
{
"start": 0,
"items": [],
pgSize: 50
}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы