插件窝 干货文章 反应分页上的错误

反应分页上的错误

Products displayedItems gt itemsPerPage 921    来源:    2024-10-20

当我尝试在其他分页选项卡之间切换时,我在反应分页中遇到了一个小错误,每次切换时网格内容都会增加,我该如何修复这个错误,你知道吗

我已经安装了这个 npm 包
https://www.npmjs.com/package/react-paginate

我将在下面提供我部署的项目:
https://shoe-ecommerce-ez1c.vercel.app/

import React, { useState, useContext } from "react";
import ReactPaginate from "react-paginate";
import { ShopContext } from "./Context/ShopContext";
import Products from "./Components/Products";
import { Link } from "react-router-dom";

function PaginationProdGrid() {
  const { products } = useContext(ShopContext);
  const [currentPage, setCurrentPage] = useState(0);
  const itemsPerPage = 6;

  const displayedItems = products.slice(
    currentPage * itemsPerPage,
    (currentPage + 1) * itemsPerPage
  );


  const handlePageChange = (data) => {
    setCurrentPage(data.selected);
  };

  return (
    
      <div classname="grid md:grid-cols-3 grid-cols-1 gap-4 m-8">
        {displayedItems &amp;&amp; displayedItems.length &gt; 0 ? (
          displayedItems.map((item) =&gt; (
            <link key="{item._id}" to="{`/productInfo/${item._id}`}">
<products name="{item.name}" image="{item.image}" price="{item.price}"></products>
          ))
        ) : (
          <p classname="text-center">No products available</p>
        )}
      </div>
      <div classname="flex justify-center">
        <reactpaginate previouslabel='{"previous"}' nextlabel='{"next"}' breaklabel='{"..."}' breakclassname='{"break-me"}' pagecount="{Math.ceil(products.length" itemsperpage marginpagesdisplayed="{2}" pagerangedisplayed="{5}" onpagechange="{handlePageChange}" containerclassname="{" flex items-center text-black dark:text-white pageclassname="{" py-2 rounded-md mx-1 previousclassname="{" nextclassname="{" activeclassname='{"bg-blue-500'></reactpaginate>
</div>
    &gt;
  );
}
export default PaginationProdGrid;