Ajout de la Pagination à une Application Next.js
Pour permettre aux utilisateurs de naviguer entre différentes pages et de consulter toutes les factures, implémenter la pagination à l'aide de paramètres d'URL, de manière similaire à la fonctionnalité de recherche.
Retour au projet
Étape 1
- En naviguant vers le composant
Pagination, il est constaté qu'il s'agit d'un composant client. Afin d'éviter l'exposition des informations sensibles de la base de données, il convient de ne pas effectuer la récupération des données côté client. Préférer la récupération des données côté serveur et leur transmission en tant que prop au composant ; - Dans
app/dashboard/invoices/page.tsx, importer une nouvelle fonction nomméefetchInvoicesPageset transmettre la requête de recherche issue desearchParamsen tant qu'argument :fetchInvoicesPagescalcule le nombre total de pages en fonction de la requête de recherche. Par exemple, s'il existe 12 factures correspondantes avec un affichage de 6 par page, le nombre total de pages sera de 2.
- Transmettre la prop
totalPagesau composant<Pagination/>.
Étape 2
- Accéder à
app/ui/invoices/pagination.tsx; - Importer les hooks
usePathnameetuseSearchParams; - Utiliser ces hooks pour récupérer la page actuelle et définir la nouvelle page ;
- Décommenter le code dans ce composant.
Remarque
L'application peut temporairement ne plus fonctionner car la logique du composant
<Pagination/>n'est pas encore implémentée. Cette partie sera traitée ultérieurement.
Étape 3
- À l'intérieur du composant
<Pagination>, créer une nouvelle fonction nomméecreatePageURL; - De manière similaire à la fonctionnalité de recherche, utiliser
URLSearchParamspour définir le nouveau numéro de page ; - Utiliser
pathNamepour construire la chaîne d'URL ; - Décommenter la variable
allPages.
Étape 4
Dernière étape : lorsque l'utilisateur saisit une nouvelle requête de recherche, il est essentiel de réinitialiser le numéro de page à 1. Pour cela, mettez à jour la fonction handleSearch dans app/ui/search.tsx.
En pratique
Merci pour vos commentaires !
Demandez à l'IA
Demandez à l'IA
Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion
Awesome!
Completion rate improved to 2.08
Ajout de la Pagination à une Application Next.js
Glissez pour afficher le menu
Pour permettre aux utilisateurs de naviguer entre différentes pages et de consulter toutes les factures, implémenter la pagination à l'aide de paramètres d'URL, de manière similaire à la fonctionnalité de recherche.
Retour au projet
Étape 1
- En naviguant vers le composant
Pagination, il est constaté qu'il s'agit d'un composant client. Afin d'éviter l'exposition des informations sensibles de la base de données, il convient de ne pas effectuer la récupération des données côté client. Préférer la récupération des données côté serveur et leur transmission en tant que prop au composant ; - Dans
app/dashboard/invoices/page.tsx, importer une nouvelle fonction nomméefetchInvoicesPageset transmettre la requête de recherche issue desearchParamsen tant qu'argument :fetchInvoicesPagescalcule le nombre total de pages en fonction de la requête de recherche. Par exemple, s'il existe 12 factures correspondantes avec un affichage de 6 par page, le nombre total de pages sera de 2.
- Transmettre la prop
totalPagesau composant<Pagination/>.
Étape 2
- Accéder à
app/ui/invoices/pagination.tsx; - Importer les hooks
usePathnameetuseSearchParams; - Utiliser ces hooks pour récupérer la page actuelle et définir la nouvelle page ;
- Décommenter le code dans ce composant.
Remarque
L'application peut temporairement ne plus fonctionner car la logique du composant
<Pagination/>n'est pas encore implémentée. Cette partie sera traitée ultérieurement.
Étape 3
- À l'intérieur du composant
<Pagination>, créer une nouvelle fonction nomméecreatePageURL; - De manière similaire à la fonctionnalité de recherche, utiliser
URLSearchParamspour définir le nouveau numéro de page ; - Utiliser
pathNamepour construire la chaîne d'URL ; - Décommenter la variable
allPages.
Étape 4
Dernière étape : lorsque l'utilisateur saisit une nouvelle requête de recherche, il est essentiel de réinitialiser le numéro de page à 1. Pour cela, mettez à jour la fonction handleSearch dans app/ui/search.tsx.
En pratique
Merci pour vos commentaires !