40 - Pagination for Long Lists of Data
Description
Algorithm
Classes
Code
import React, { useState } from 'react';
import PaginationControl from './PaginationControl';
const Pagination = ({ items, itemsPerPage }) => {
const [currentPage, setCurrentPage] = useState(1);
const [totalPages, setTotalPages] = useState(Math.ceil(items.length / itemsPerPage));
const handlePageNavigation = (pageNumber) => {
setCurrentPage(pageNumber);
};
return (
<div>
<ul>
{items.slice((currentPage - 1) * itemsPerPage, currentPage * itemsPerPage).map((item) => (
<li key={item.id}>{item}</li>
))}
</ul>
<div>
{Array.from(Array(totalPages), (_, index) => (
<PaginationControl
key={index}
pageNumber={index + 1}
currentPage={currentPage}
onClick={() => handlePageNavigation(index + 1)}
/>
))}
</div>
</div>
);
};
export default Pagination;
Explanation
Possible Future Enhancements
Last updated