可以使用 Ant Design Table 结合 limit 和 offset 来实现分页请求。首先,你需要在父组件中定义一个 state 来存储 limit 和 offset 的值,然后在表格中使用这些值来设置分页参数。接下来,你可以通过修改 limit 和 offset 的值来实现分页请求。

下面是一个示例代码:

import React, { useState, useEffect } from 'react';
import { Table } from 'antd';

const MyTable = () => {
  const [limit, setLimit] = useState(10); // 每页显示的行数
  const [offset, setOffset] = useState(0); // 起始行数

  const [data, setData] = useState([]); // 表格数据
  const [total, setTotal] = useState(0); // 数据总数

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

  const fetchData = () => {
    // 根据limit和offset发送分页请求
    // 例如:axios.get(`/api/data?limit=${limit}&offset=${offset}`) 
    // 返回的数据包括data和total

    // 假设返回的数据格式如下:
    const response = {
      data: [
        { id: 1, name: 'John' },
        { id: 2, name: 'Jane' },
        { id: 3, name: 'Bob' },
      ],
      total: 100,
    };

    setData(response.data);
    setTotal(response.total);
  };

  const handleTableChange = (pagination) => {
    const { current, pageSize } = pagination;
    const newOffset = (current - 1) * pageSize;
    setOffset(newOffset);
    setLimit(pageSize);
  };

  const columns = [
    { title: 'ID', dataIndex: 'id' },
    { title: 'Name', dataIndex: 'name' },
  ];

  return (
    <Table
      dataSource={data}
      columns={columns}
      pagination={{
        total: total,
        defaultPageSize: limit,
        onChange: handleTableChange,
      }}
    />
  );
};

export default MyTable;

在上面的示例中,我们使用 useState 来定义 limit 和 offset 的初始值,并在 useEffect 中监听 limit 和 offset 的变化,当它们的值发生变化时,会触发 fetchData 函数发送分页请求。

在 handleTableChange 函数中,我们根据 Antd Table 的 pagination 对象中的 current 和 pageSize 来计算新的 offset 值,并更新 limit 和 offset 的状态。

最后,我们将数据和列配置传递给 Table 组件,并设置 pagination 属性来实现分页功能。在 pagination 属性中,我们设置 total 为总数据量,defaultPageSize 为每页显示的行数,onChange 为处理分页变化的函数 handleTableChange。

这样,当用户在表格中切换页码或修改每页显示的行数时,会触发 handleTableChange 函数,从而更新 limit 和 offset 的值,并重新发送分页请求。


原文地址: https://www.cveoy.top/t/topic/qkKE 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录