Pagination
O Pagination
é totalmente controlado. É possível definir os estados necessários para manipular as interações, como alterar página atual e quantidade de itens por página.
Básico
O Pagination
pode ser usado apenas com os botões de navegação entre páginas.
Com resumo
Use a propriedade renderSummary
para mostrar um resumo dos itens junto à navegação. Essa propriedade pode receber uma string contendo chaves específicas, que serão substituídas pelo valor final de cada uma delas.
As chaves disponíveis são:
{total}
: Total de itens paginados{pageSize}
: Número de itens por página{currentPage}
: Página atual{firstPageItemIndex}
: Índice do primeiro item da página atual{lastPageItemIndex}
: Índice do último item da página atual
Por exemplo:
Seleção de tamanho de página
Use a propriedade renderSummary
declarando uma função para obter o subcomponente PageSizeSelect
e informações sobre a paginação através dos parâmetros disponíveis. Para mais detalhes acesse nossa aba de API do componente.
É possível também passar opções customizadas para o PageSizeSelect
através da propriedade pageSizeSelectOptions
.
Evento onChange
Para gerenciar os eventos de mudança do componente, a propriedade onChange
espera um callback
que suporta os seguintes parâmetros nesta ordem:
- O objeto do evento disparado
- O valor da página atual
- Informações gerais sobre o componente, como número de itens por página e motivo de uma mudança
Para mais detalhes acesse nossa aba de API do componente.
Navegação oculta
Use a propriedade hideNavigation
para ocultar a navegação e exibir apenas o resumo.
Internacionalização
É possível passar valores customizados para os diferentes textos usados internamente pelo componente. São eles:
previousLabel
: Texto para o botão de voltar à página anteriornextLabel
: Texto para o botão de avançar à próxima páginapageSizeSelectLabel
: Texto para rotular o subcomponentePageSizeSelect
. Este texto não é exibido, mas é importante para questões de acessibilidade
Para ajudar neste processo, constantes estão disponíveis com valores padrões para inglês, português e espanhol. Para mais detalhes acesse nossa aba de API do componente.
Exemplo de uso das constantes para português:
Usando junto com react-i18next
Ao usar o renderSummary
com o subcomponente PageSizeSelect
, use o componente Trans.
Exemplo:
import { Trans } from 'react-i18next';
const ExampleUsingTrans = () => {
const [currentPage, setCurrentPage] = useState(1);
const [pageSize, setPageSize] = useState(10);
const handleChange = (_, page, { pageSize }) => {
setPageSize(pageSize);
setCurrentPage(page);
};
return (
<Pagination
total={100}
pageSize={pageSize}
currentPage={currentPage}
onChange={handleChange}
renderSummary={({ pageSize, total, PageSizeSelect }) => (
<Trans
i18nKey="myKey"
values={{ pageSize, total }}
components={{ select: <PageSizeSelect /> }}
/>
)}
/>
);
};
Ao usar o renderSummary
apenas como texto, use a função t
do hook useTranslation, passando as variáveis.
import { useTranslation } from 'react-i18next';
const ExampleUsingT = () => {
const { t } = useTranslation();
const [currentPage, setCurrentPage] = useState(1);
const [pageSize, setPageSize] = useState(10);
const handleChange = (_, page, { pageSize }) => {
setPageSize(pageSize);
setCurrentPage(page);
};
return (
<Pagination
total={100}
pageSize={pageSize}
currentPage={currentPage}
onChange={handleChange}
renderSummary={({ pageSize, total }) => t('myKey', { pageSize, total })}
/>
);
};