react遍历数据翻页

在React中,遍历翻页通常意味着需要处理一组数据的分页显示。可以通过维护当前页码和每页显示的项目数量来实现。

import React, { useState } from 'react';
 
const PaginateList = ({ items, itemsPerPage }) => {
  const [currentPage, setCurrentPage] = useState(1);
 
  // 计算总页数
  const totalPages = Math.ceil(items.length / itemsPerPage);
 
  // 获取当前页的项目
  const currentItems = items.slice((currentPage - 1) * itemsPerPage, currentPage * itemsPerPage);
 
  // 上一页
  const handlePrevious = () => {
    if (currentPage > 1) {
      setCurrentPage(currentPage - 1);
    }
  };
 
  // 下一页
  const handleNext = () => {
    if (currentPage < totalPages) {
      setCurrentPage(currentPage + 1);
    }
  };
 
  return (
    <>
      <button disabled={currentPage === 1} onClick={handlePrevious}>
        Previous
      </button>
      <button disabled={currentPage === totalPages} onClick={handleNext}>
        Next
      </button>
      <ul>
        {currentItems.map((item) => (
          <li key={item.id}>{item.name}</li>
        ))}
      </ul>
    </>
  );
};
 
export default PaginateList;

使用此组件时,需要传入一个items数组和每页所需的itemsPerPage数量。组件内部维护当前页码currentPage,并在用户点击PreviousNext按钮时更新它。currentItems是当前页面显示的项目,而totalPages是根据总项目数和每页项目数计算得到的总页数。

请注意,上述代码没有处理边界情况,如当前页码小于1或大于总页数时的操作,实际应用中可能需要添加这样的检查。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值