Додавання Пагінації до Застосунку Next.js
Щоб надати користувачам можливість переходити між різними сторінками та переглядати всі рахунки, реалізуйте пагінацію за допомогою параметрів URL, подібно до функціоналу пошуку.
Повернення до проєкту
Крок 1
- Якщо перейти до компонента
Pagination, можна побачити, що це клієнтський компонент. Щоб уникнути розкриття секретів бази даних, не отримуйте дані на клієнтській стороні. Натомість отримуйте дані на сервері та передавайте їх як проп до компонента; - У файлі
app/dashboard/invoices/page.tsxімпортуйте нову функцію під назвоюfetchInvoicesPagesі передайте пошуковий запит ізsearchParamsяк аргумент:fetchInvoicesPagesобчислює загальну кількість сторінок на основі пошукового запиту. Наприклад, якщо є 12 відповідних рахунків-фактур із відображенням по 6 на сторінці, загальна кількість сторінок становитиме 2.
- Передайте проп
totalPagesдо компонента<Pagination/>.
Крок 2
- Перейдіть до
app/ui/invoices/pagination.tsx; - Імпортуйте хуки
usePathnameтаuseSearchParams; - Використайте ці хуки для отримання поточної сторінки та встановлення нової сторінки;
- Розкоментуйте код у цьому компоненті.
Примітка
Ваш застосунок може тимчасово не працювати, оскільки логіка
<Pagination/>ще не реалізована. Ми повернемося до цього пізніше.
Крок 3
- Усередині компонента
<Pagination>створіть нову функцію під назвоюcreatePageURL; - Аналогічно до пошукової функціональності, використайте
URLSearchParamsдля встановлення нового номера сторінки; - Використайте
pathNameдля побудови рядка URL; - Розкоментуйте змінну
allPages.
Крок 4
Останній крок — коли користувач вводить новий пошуковий запит, необхідно скинути номер сторінки на 1. Для цього оновіть функцію handleSearch у файлі app/ui/search.tsx.
На практиці
Дякуємо за ваш відгук!
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат
Can you explain how the fetchInvoicesPages function works?
How does the generatePagination function determine which page numbers to show?
What should I do if the pagination is not updating when I search for a new term?
Awesome!
Completion rate improved to 2.08
Додавання Пагінації до Застосунку Next.js
Свайпніть щоб показати меню
Щоб надати користувачам можливість переходити між різними сторінками та переглядати всі рахунки, реалізуйте пагінацію за допомогою параметрів URL, подібно до функціоналу пошуку.
Повернення до проєкту
Крок 1
- Якщо перейти до компонента
Pagination, можна побачити, що це клієнтський компонент. Щоб уникнути розкриття секретів бази даних, не отримуйте дані на клієнтській стороні. Натомість отримуйте дані на сервері та передавайте їх як проп до компонента; - У файлі
app/dashboard/invoices/page.tsxімпортуйте нову функцію під назвоюfetchInvoicesPagesі передайте пошуковий запит ізsearchParamsяк аргумент:fetchInvoicesPagesобчислює загальну кількість сторінок на основі пошукового запиту. Наприклад, якщо є 12 відповідних рахунків-фактур із відображенням по 6 на сторінці, загальна кількість сторінок становитиме 2.
- Передайте проп
totalPagesдо компонента<Pagination/>.
Крок 2
- Перейдіть до
app/ui/invoices/pagination.tsx; - Імпортуйте хуки
usePathnameтаuseSearchParams; - Використайте ці хуки для отримання поточної сторінки та встановлення нової сторінки;
- Розкоментуйте код у цьому компоненті.
Примітка
Ваш застосунок може тимчасово не працювати, оскільки логіка
<Pagination/>ще не реалізована. Ми повернемося до цього пізніше.
Крок 3
- Усередині компонента
<Pagination>створіть нову функцію під назвоюcreatePageURL; - Аналогічно до пошукової функціональності, використайте
URLSearchParamsдля встановлення нового номера сторінки; - Використайте
pathNameдля побудови рядка URL; - Розкоментуйте змінну
allPages.
Крок 4
Останній крок — коли користувач вводить новий пошуковий запит, необхідно скинути номер сторінки на 1. Для цього оновіть функцію handleSearch у файлі app/ui/search.tsx.
На практиці
Дякуємо за ваш відгук!