Adicionando Paginação a um Aplicativo Next.js
Para permitir que os usuários naveguem entre diferentes páginas e visualizem todas as faturas, implemente a paginação utilizando parâmetros de URL, de forma semelhante à funcionalidade de busca.
De volta ao projeto
Etapa 1
- Ao navegar até o componente
Pagination, observe que ele é um componente de cliente. Para evitar a exposição de segredos do banco de dados, evite buscar dados no lado do cliente. Em vez disso, realize a busca dos dados no servidor e passe-os como uma propriedade para o componente; - Em
app/dashboard/invoices/page.tsx, importe uma nova função chamadafetchInvoicesPagese passe a consulta de busca desearchParamscomo argumento:fetchInvoicesPagescalcula o número total de páginas com base na consulta de busca. Por exemplo, se houver 12 faturas correspondentes com exibição de 6 por página, o número total de páginas será 2.
- Passe a propriedade
totalPagespara o componente<Pagination/>.
Etapa 2
- Navegue até
app/ui/invoices/pagination.tsx; - Importe os hooks
usePathnameeuseSearchParams; - Utilize esses hooks para recuperar a página atual e definir a nova página;
- Descomente o código neste componente.
Nota
Sua aplicação pode apresentar falhas temporárias, pois a lógica do
<Pagination/>ainda não foi implementada. Trabalharemos nisso posteriormente.
Etapa 3
- Dentro do componente
<Pagination>, crie uma nova função chamadacreatePageURL; - De forma semelhante à funcionalidade de busca, utilize
URLSearchParamspara definir o novo número da página; - Utilize
pathNamepara construir a string da URL; - Descomente a variável
allPages.
Etapa 4
Etapa final - quando o usuário inserir uma nova consulta de pesquisa, é fundamental redefinir o número da página para 1. Para isso, atualize a função handleSearch em app/ui/search.tsx.
Na Prática
Obrigado pelo seu feedback!
Pergunte à IA
Pergunte à IA
Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo
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
Adicionando Paginação a um Aplicativo Next.js
Deslize para mostrar o menu
Para permitir que os usuários naveguem entre diferentes páginas e visualizem todas as faturas, implemente a paginação utilizando parâmetros de URL, de forma semelhante à funcionalidade de busca.
De volta ao projeto
Etapa 1
- Ao navegar até o componente
Pagination, observe que ele é um componente de cliente. Para evitar a exposição de segredos do banco de dados, evite buscar dados no lado do cliente. Em vez disso, realize a busca dos dados no servidor e passe-os como uma propriedade para o componente; - Em
app/dashboard/invoices/page.tsx, importe uma nova função chamadafetchInvoicesPagese passe a consulta de busca desearchParamscomo argumento:fetchInvoicesPagescalcula o número total de páginas com base na consulta de busca. Por exemplo, se houver 12 faturas correspondentes com exibição de 6 por página, o número total de páginas será 2.
- Passe a propriedade
totalPagespara o componente<Pagination/>.
Etapa 2
- Navegue até
app/ui/invoices/pagination.tsx; - Importe os hooks
usePathnameeuseSearchParams; - Utilize esses hooks para recuperar a página atual e definir a nova página;
- Descomente o código neste componente.
Nota
Sua aplicação pode apresentar falhas temporárias, pois a lógica do
<Pagination/>ainda não foi implementada. Trabalharemos nisso posteriormente.
Etapa 3
- Dentro do componente
<Pagination>, crie uma nova função chamadacreatePageURL; - De forma semelhante à funcionalidade de busca, utilize
URLSearchParamspara definir o novo número da página; - Utilize
pathNamepara construir a string da URL; - Descomente a variável
allPages.
Etapa 4
Etapa final - quando o usuário inserir uma nova consulta de pesquisa, é fundamental redefinir o número da página para 1. Para isso, atualize a função handleSearch em app/ui/search.tsx.
Na Prática
Obrigado pelo seu feedback!