可以使用antd 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的值,并重新发送分页请求

使用antd table 结合 limit offset 实现分页请求

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

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