假设我们有一个表格,其中数据包含一个“数字”列。当我们在表格分页之后尝试对“数字”列进行排序时,排序不会正确的继续。我们需要手动处理排序,以使它正确地与分页进行配合。
以下是解决方法的代码示例:
import React, { useState, useEffect } from 'react';
import { Table } from 'antd';
const App = () => {
const [data, setData] = useState([]);
const [pagination, setPagination] = useState({ current: 1, pageSize: 5 });
const [sorter, setSorter] = useState({});
const getColumnSearchProps = dataIndex => ({
// 自定义筛选菜单
filterDropdown: () => (
),
onFilter: (value, record) => record[dataIndex].toString().toLowerCase().includes(value.toLowerCase()),
// 自定义表头排序
sortOrder: sorter.field === dataIndex && sorter.order,
sorter: true,
onHeaderCell: () => ({
onClick: () => {
const order = sorter.order === 'descend' ? 'ascend' : 'descend';
setSorter({ field: dataIndex, order });
},
}),
});
useEffect(() => {
// 模拟异步请求数据
const fetchData = async () => {
const res = await fetch('https://randomuser.me/api/?results=50&inc=name,gender,email,phone,nat&noinfo');
const { results } = await res.json();
setData(results);
};
fetchData();
}, []);
const handleTableChange = (pagination, filters, sorter) => {
setPagination(pagination);
setSorter(sorter);
};
return (
);
};
export default App;
我们使用useState钩子来跟
下一篇:Antd表格根据动态数据进行分组