ReactPaginate 更新问题

ReactPaginate update issue

我正在 React 中创建分页(使用 NPM 'ReactPaginate')。当我更改页面时,第一次更改页面显示接下来的 5 个项目,但第二次更改(单击下一页 button/number)仅显示一个项目。等等(& 甚至不显示最终项目)。是 Hooks 更新问题吗?怎么解决?提前致谢:)

import React, { useState, useEffect } from 'react';
import ReactPaginate from 'react-paginate';
import './style.css';

export default function App() {
  const arrayNums = [
    1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
  ];

  const [offset, setOffset] = useState(0);
  const [data, setData] = useState([]);
  const [perPage] = useState(5);
  const [pageCount, setPageCount] = useState(0);

  const getData = () => {
    const data = arrayNums;
    const slice = data.slice(offset, offset + perPage);
    const display = slice.map((i) => <p key={i}>{i}</p>);
    setData(display);
    setPageCount(Math.ceil(data.length / perPage));
  };

  const pgClick = (e) => {
    const selected = e.selected;
    setOffset(selected + (perPage - 1));
  };

  useEffect(() => {
    getData();
  }, [offset]);

  return (
    <div>
      {data}
      <ReactPaginate
        previousLabel={'prev'}
        nextLabel={'next'}
        breakLabel={'...'}
        breakClassName={'break-me'}
        pageCount={pageCount}
        marginPagesDisplayed={2}
        pageRangeDisplayed={5}
        onPageChange={pgClick}
        containerClassName={'pagination'}
        subContainerClassName={'pages pagination'}
        activeClassName={'active'}
      />
    </div>
  );
}

只是将此作为答案写下来,似乎让您走上了正确的轨道

遵循 pgClick 逻辑...如果我点击第三页,就会发生这种情况。 3 + (5 - 1) = 7。因此您的偏移量将从 7 开始而不是 15(第 3 页 * 每页 5 项)。我将从那里开始