Tilføjelse af Paginering til en Next.js-App
Stryg for at vise menuen
For at give brugerne mulighed for at navigere mellem forskellige sider og se alle fakturaer, implementeres paginering ved hjælp af URL-parametre, på samme måde som søgefunktionen.
Tilbage til projektet
Trin 1
- Hvis du navigerer til
Pagination-komponenten, vil du se, at det er en klientkomponent. For at undgå at afsløre databasehemmeligheder, bør du undlade at hente data på klientsiden. Hent i stedet dataene på serversiden og videregiv dem som en prop til komponenten; - I
app/dashboard/invoices/page.tsx, importér en ny funktion kaldetfetchInvoicesPagesog videregiv søgeforespørgslen frasearchParamssom et argument:fetchInvoicesPagesberegner det samlede antal sider baseret på søgeforespørgslen. For eksempel, hvis der er 12 matchende fakturaer med visning af 6 pr. side, vil det samlede antal sider være 2.
- Videregiv
totalPages-proppen til<Pagination/>-komponenten.
Trin 2
- Naviger til
app/ui/invoices/pagination.tsx; - Importér
usePathname- oguseSearchParams-hooks; - Brug disse hooks til at hente den aktuelle side og angive den nye side;
- Fjern kommenteringen af koden i denne komponent.
Bemærk
Din applikation kan midlertidigt gå i stykker, da
<Pagination/>-logikken endnu ikke er implementeret. Vi arbejder videre med det senere.
Trin 3
- Inde i
<Pagination>-komponenten, opret en ny funktion kaldetcreatePageURL; - Ligesom med søgefunktionen, brug
URLSearchParamstil at angive det nye sidenummer; - Brug
pathNametil at konstruere URL-strengen; - Fjern kommenteringen af variablen
allPages.
Trin 4
Sidste trin – når brugeren indtaster en ny søgeforespørgsel, er det vigtigt at nulstille sidenummeret til 1. For at gøre dette skal du opdatere handleSearch-funktionen i app/ui/search.tsx.
I praksis
Var alt klart?
Tak for dine kommentarer!
Sektion 6. Kapitel 3
Spørg AI
Spørg AI
Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat
Sektion 6. Kapitel 3