我大概实现了一下,思路就是
- 对于第一行会有一个独有的标记,能让我在sorter函数里面知道这是第一行
- 在sorter里面异步修改排序的值,使其永远保证最大或者最小,异步保证本次排序不受影响
const columns = [
{
title: 'test',
dataIndex: 'test',
sorter: (a, b) => {
const result = a.num - b.num;
setTimeout(() => {
if (a.test === 'total') {
a.num = 0 - a.num;
}
if (b.test === 'total') {
b.num = 0 - b.num;
}
console.log(a, b);
});
return result;
}
}
];
const dataSource = [
{ test: 'total', num: -1000 },
{ test: '1', num: 1 },
{ test: '22', num: 2 },
{ test: '33', num: 33 },
{ test: '4', num: 4 }
];
<Table columns={columns} dataSource={dataSource} rowKey="test"/>
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…