登录
首页 >  文章 >  前端

反应分页上的错误

来源:dev.to

时间:2024-09-18 10:45:56 251浏览 收藏

偷偷努力,悄无声息地变强,然后惊艳所有人!哈哈,小伙伴们又来学习啦~今天我将给大家介绍《反应分页上的错误》,这篇文章主要会讲到等等知识点,不知道大家对其都有多少了解,下面我们就一起来看一吧!当然,非常希望大家能多多评论,给出合理的建议,我们一起学习,一起进步!

反应分页上的错误

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

我已经安装了这个 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 && displayedItems.length > 0 ? (
          displayedItems.map((item) => (
            <Link key={item._id} to={`/productInfo/${item._id}`}>
              <Products
                name={item.name}
                image={item.image}
                price={item.price}
              />
            </Link>
          ))
        ) : (
          <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={
            "pagination flex items-center  text-black dark:text-white"
          }
          pageClassName={
            "px-3 py-2 rounded-md mx-1 "
          }
          previousClassName={
            "px-3 py-2 rounded-md mx-1  "
          }
          nextClassName={
            "px-3 py-2 rounded-md mx-1  "
          }
          activeClassName={"bg-blue-500 "}
        />
      </div>
    </>
  );
}
export default PaginationProdGrid;

理论要掌握,实操不能落!以上关于《反应分页上的错误》的详细介绍,大家都掌握了吧!如果想要继续提升自己的能力,那么就来关注golang学习网公众号吧!

声明:本文转载于:dev.to 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>