Paginering Toevoegen aan een Next.js-applicatie
Om gebruikers in staat te stellen door verschillende pagina's te navigeren en alle facturen te bekijken, paginering implementeren met behulp van URL-parameters, vergelijkbaar met de zoekfunctionaliteit.
Terug naar het project
Stap 1
- Navigeer naar de
Pagination-component; deze is een clientcomponent. Om het blootstellen van databasesecreties te voorkomen, geen data ophalen aan de clientzijde. Haal in plaats daarvan de data op aan de serverzijde en geef deze door als prop aan de component; - Importeer in
app/dashboard/invoices/page.tsxeen nieuwe functie genaamdfetchInvoicesPagesen geef de zoekopdracht uitsearchParamsals argument door:fetchInvoicesPagesberekent het totale aantal pagina's op basis van de zoekopdracht. Bijvoorbeeld: als er 12 overeenkomende facturen zijn met een weergave van 6 per pagina, is het totale aantal pagina's 2.
- Geef de prop
totalPagesdoor aan de<Pagination/>-component.
Stap 2
- Navigeer naar
app/ui/invoices/pagination.tsx; - Importeer de hooks
usePathnameenuseSearchParams; - Gebruik deze hooks om de huidige pagina op te halen en de nieuwe pagina in te stellen;
- Haal het commentaar weg bij de code in deze component.
Opmerking
De applicatie kan tijdelijk niet werken omdat de logica van
<Pagination/>nog niet is geïmplementeerd. Hier wordt later aan gewerkt.
Stap 3
- Maak binnen de
<Pagination>-component een nieuwe functie genaamdcreatePageURL; - Gebruik, vergelijkbaar met de zoekfunctionaliteit,
URLSearchParamsom het nieuwe paginanummer in te stellen; - Gebruik
pathNameom de URL-string samen te stellen; - Haal het commentaar weg bij de variabele
allPages.
Stap 4
Laatste stap - wanneer de gebruiker een nieuwe zoekopdracht invoert, is het essentieel om het paginanummer terug te zetten naar 1. Werk hiervoor de handleSearch-functie bij in app/ui/search.tsx.
In de praktijk
Bedankt voor je feedback!
Vraag AI
Vraag AI
Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.
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
Paginering Toevoegen aan een Next.js-applicatie
Veeg om het menu te tonen
Om gebruikers in staat te stellen door verschillende pagina's te navigeren en alle facturen te bekijken, paginering implementeren met behulp van URL-parameters, vergelijkbaar met de zoekfunctionaliteit.
Terug naar het project
Stap 1
- Navigeer naar de
Pagination-component; deze is een clientcomponent. Om het blootstellen van databasesecreties te voorkomen, geen data ophalen aan de clientzijde. Haal in plaats daarvan de data op aan de serverzijde en geef deze door als prop aan de component; - Importeer in
app/dashboard/invoices/page.tsxeen nieuwe functie genaamdfetchInvoicesPagesen geef de zoekopdracht uitsearchParamsals argument door:fetchInvoicesPagesberekent het totale aantal pagina's op basis van de zoekopdracht. Bijvoorbeeld: als er 12 overeenkomende facturen zijn met een weergave van 6 per pagina, is het totale aantal pagina's 2.
- Geef de prop
totalPagesdoor aan de<Pagination/>-component.
Stap 2
- Navigeer naar
app/ui/invoices/pagination.tsx; - Importeer de hooks
usePathnameenuseSearchParams; - Gebruik deze hooks om de huidige pagina op te halen en de nieuwe pagina in te stellen;
- Haal het commentaar weg bij de code in deze component.
Opmerking
De applicatie kan tijdelijk niet werken omdat de logica van
<Pagination/>nog niet is geïmplementeerd. Hier wordt later aan gewerkt.
Stap 3
- Maak binnen de
<Pagination>-component een nieuwe functie genaamdcreatePageURL; - Gebruik, vergelijkbaar met de zoekfunctionaliteit,
URLSearchParamsom het nieuwe paginanummer in te stellen; - Gebruik
pathNameom de URL-string samen te stellen; - Haal het commentaar weg bij de variabele
allPages.
Stap 4
Laatste stap - wanneer de gebruiker een nieuwe zoekopdracht invoert, is het essentieel om het paginanummer terug te zetten naar 1. Werk hiervoor de handleSearch-functie bij in app/ui/search.tsx.
In de praktijk
Bedankt voor je feedback!