Hinzufügen von Paginierung zu einer Next.js-App
Um den Nutzern die Navigation durch verschiedene Seiten und die Anzeige aller Rechnungen zu ermöglichen, Paginierung mithilfe von URL-Parametern implementieren, ähnlich wie bei der Suchfunktion.
Zurück zum Projekt
Schritt 1
- Wenn Sie zur
Pagination-Komponente navigieren, sehen Sie, dass es sich um eine Client-Komponente handelt. Um das Offenlegen von Datenbankgeheimnissen zu vermeiden, sollten Sie keine Daten auf der Client-Seite abrufen. Stattdessen sollten die Daten auf dem Server abgerufen und als Prop an die Komponente übergeben werden; - Importieren Sie in
app/dashboard/invoices/page.tsxeine neue Funktion namensfetchInvoicesPagesund übergeben Sie die Suchanfrage aussearchParamsals Argument:fetchInvoicesPagesberechnet die Gesamtanzahl der Seiten basierend auf der Suchanfrage. Wenn es beispielsweise 12 passende Rechnungen mit einer Anzeige von 6 pro Seite gibt, beträgt die Gesamtanzahl der Seiten 2.
- Übergeben Sie die Prop
totalPagesan die Komponente<Pagination/>.
Schritt 2
- Navigieren Sie zu
app/ui/invoices/pagination.tsx; - Importieren Sie die Hooks
usePathnameunduseSearchParams; - Verwenden Sie diese Hooks, um die aktuelle Seite abzurufen und die neue Seite zu setzen;
- Kommentieren Sie den Code in dieser Komponente aus.
Hinweis
Ihre Anwendung kann vorübergehend nicht funktionieren, da die Logik für
<Pagination/>noch nicht implementiert ist. Wir werden dies später bearbeiten.
Schritt 3
- Erstellen Sie innerhalb der
<Pagination>-Komponente eine neue Funktion namenscreatePageURL; - Verwenden Sie ähnlich wie bei der Suchfunktionalität
URLSearchParams, um die neue Seitennummer zu setzen; - Nutzen Sie
pathName, um den URL-String zu erstellen; - Kommentieren Sie die Variable
allPagesaus.
Schritt 4
Letzter Schritt – wenn der Benutzer eine neue Suchanfrage eingibt, muss die Seitenzahl auf 1 zurückgesetzt werden. Aktualisieren Sie dazu die Funktion handleSearch in app/ui/search.tsx.
In der Praxis
Danke für Ihr Feedback!
Fragen Sie AI
Fragen Sie AI
Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen
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
Hinzufügen von Paginierung zu einer Next.js-App
Swipe um das Menü anzuzeigen
Um den Nutzern die Navigation durch verschiedene Seiten und die Anzeige aller Rechnungen zu ermöglichen, Paginierung mithilfe von URL-Parametern implementieren, ähnlich wie bei der Suchfunktion.
Zurück zum Projekt
Schritt 1
- Wenn Sie zur
Pagination-Komponente navigieren, sehen Sie, dass es sich um eine Client-Komponente handelt. Um das Offenlegen von Datenbankgeheimnissen zu vermeiden, sollten Sie keine Daten auf der Client-Seite abrufen. Stattdessen sollten die Daten auf dem Server abgerufen und als Prop an die Komponente übergeben werden; - Importieren Sie in
app/dashboard/invoices/page.tsxeine neue Funktion namensfetchInvoicesPagesund übergeben Sie die Suchanfrage aussearchParamsals Argument:fetchInvoicesPagesberechnet die Gesamtanzahl der Seiten basierend auf der Suchanfrage. Wenn es beispielsweise 12 passende Rechnungen mit einer Anzeige von 6 pro Seite gibt, beträgt die Gesamtanzahl der Seiten 2.
- Übergeben Sie die Prop
totalPagesan die Komponente<Pagination/>.
Schritt 2
- Navigieren Sie zu
app/ui/invoices/pagination.tsx; - Importieren Sie die Hooks
usePathnameunduseSearchParams; - Verwenden Sie diese Hooks, um die aktuelle Seite abzurufen und die neue Seite zu setzen;
- Kommentieren Sie den Code in dieser Komponente aus.
Hinweis
Ihre Anwendung kann vorübergehend nicht funktionieren, da die Logik für
<Pagination/>noch nicht implementiert ist. Wir werden dies später bearbeiten.
Schritt 3
- Erstellen Sie innerhalb der
<Pagination>-Komponente eine neue Funktion namenscreatePageURL; - Verwenden Sie ähnlich wie bei der Suchfunktionalität
URLSearchParams, um die neue Seitennummer zu setzen; - Nutzen Sie
pathName, um den URL-String zu erstellen; - Kommentieren Sie die Variable
allPagesaus.
Schritt 4
Letzter Schritt – wenn der Benutzer eine neue Suchanfrage eingibt, muss die Seitenzahl auf 1 zurückgesetzt werden. Aktualisieren Sie dazu die Funktion handleSearch in app/ui/search.tsx.
In der Praxis
Danke für Ihr Feedback!