Next.js template
Du kannst nicht mehr als 25 Themen auswählen Themen müssen mit entweder einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.

PaginationComponentSWR.jsx 922B

12345678910111213141516171819202122232425262728293031323334
  1. import { useState } from 'react';
  2. import useSWRWithFallbackData from '../../../hooks/use-swr-with-initial-data';
  3. import { getData } from '../../../requests/dataRequest';
  4. const PaginationComponent = ({ initialData = {} }) => {
  5. const [pageIndex, setPageIndex] = useState(1);
  6. const fetcher = (page) => getData(page);
  7. const { data: paginationData } = useSWRWithFallbackData(pageIndex, fetcher, {
  8. fallbackData: initialData,
  9. });
  10. return (
  11. <div>
  12. {paginationData?.data?.map((item) => (
  13. <div key={item._id}>{item.name}</div>
  14. ))}
  15. <button
  16. disabled={pageIndex === 1}
  17. onClick={() => setPageIndex(pageIndex - 1)}
  18. >
  19. Previous
  20. </button>
  21. <button
  22. disabled={pageIndex * 5 > paginationData?.dataCount}
  23. onClick={() => setPageIndex(pageIndex + 1)}
  24. >
  25. Next
  26. </button>
  27. </div>
  28. );
  29. };
  30. export default PaginationComponent;