설치
$ npm install react-paginate
구현 모습
작동 로직
Pagination은 react-paginate 라이브러리의 ReactPaginate 컴포넌트를 통해서 이루어진다.
작동하기 위해 필요한 인자
페이지네이션을 사용하는 컴포넌트에서 Pagination 컴포넌트에 props로 위의 인자를 넣어주면 Pagination 컴포넌트 내에서 필요 페이지 수 계산해서 페이지네이션 해준다. 보여줄 페이지가 1페이지 밖에 안된다면 페이지네이션 버튼을 안보여주도록 처리해주었다.
handlePageClick 함수
// ClassList.tsx
...
const [classCount, setClassCount] = useState(0);
const itemsPerPage = 5;
const handlePageClick = async (event: any) => {
const newOffset = (event.selected * itemsPerPage) % classCount;
try {
const res = await LessonAPI.getLessons(itemsPerPage, newOffset);
} catch (e) {
console.log(e, '레슨을 불러오지 못했습니다.');
}
};
...
<Pagination
itemsPerPage={itemsPerPage}
classCount={classCount}
handlePageClick={e => handlePageClick(e)}
/>
...
속성