【发布时间】:2021-12-30 16:18:06
【问题描述】:
您好,我正在使用反应分页,它工作正常,并使用 api 分页。但没有得到正确的方式。当我使用 {paginationItems} 时,它会在一行中显示所有页面,我想在省略号中使用它
我的代码
import React, { useEffect, useState, useMemo } from "react";
import Pagination from "react-bootstrap/Pagination";
const PaginationComponent = ({
total = 0,
itemsPerPage = 10,
currentPage = 1,
onPageChange,
}) => {
const [totalPages, setTotalPages] = useState(0);
useEffect(() => {
if (total > 0 && itemsPerPage > 0)
setTotalPages(Math.ceil(total / itemsPerPage));
}, [total, itemsPerPage]);
const paginationItems = useMemo(() => {
const pages: any = [];
for (let i = 1; i <= totalPages; i++) {
pages.push(
<Pagination.Item
key={i}
active={i === currentPage}
onClick={() => onPageChange(i)}
>
{i}
</Pagination.Item>
);
}
return pages;
}, [totalPages, currentPage]);
if (totalPages === 0) return null;
return (
<Pagination className="paginationInfo">
<Pagination.Prev
onClick={() => onPageChange(currentPage - 1)}
disabled={currentPage === 1}
/>
{paginationItems}
<Pagination.Next
onClick={() => onPageChange(currentPage + 1)}
disabled={currentPage === totalPages}
/>
</Pagination>
);
};
export default PaginationComponent;
【问题讨论】:
标签: reactjs pagination react-bootstrap