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或大于总页数时的操作,实际应用中可能需要添加这样的检查。

相关推荐

  1. react

    2024-07-11 15:58:01       24 阅读
  2. [Go] 字符串类型问题

    2024-07-11 15:58:01       23 阅读
  3. 组的列

    2024-07-11 15:58:01       52 阅读
  4. 组和里面的对象

    2024-07-11 15:58:01       55 阅读
  5. Flutter循环组获取索引值

    2024-07-11 15:58:01       64 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-11 15:58:01       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-11 15:58:01       71 阅读
  3. 在Django里面运行非项目文件

    2024-07-11 15:58:01       58 阅读
  4. Python语言-面向对象

    2024-07-11 15:58:01       69 阅读

热门阅读

  1. Perl 语言入门:编写并执行你的第一个脚本

    2024-07-11 15:58:01       23 阅读
  2. 具名/匿名/作用域插槽区分

    2024-07-11 15:58:01       24 阅读
  3. mysql select count返回null

    2024-07-11 15:58:01       18 阅读
  4. HTML 标签列表(功能排序)

    2024-07-11 15:58:01       21 阅读
  5. Hadoop HA ( 3.1.3 )

    2024-07-11 15:58:01       20 阅读
  6. 【智能制造-14】机器视觉软件

    2024-07-11 15:58:01       23 阅读
  7. Vue viewer 下通循环获取的图片无法预览问题

    2024-07-11 15:58:01       15 阅读
  8. sa-token前后端分离解决跨域的正确姿势

    2024-07-11 15:58:01       16 阅读
  9. MySQL 程序简介

    2024-07-11 15:58:01       21 阅读
  10. Day1 计数类dp 知识点 & 部分例题

    2024-07-11 15:58:01       22 阅读