antd table升降序失效

文章讲述了在使用组件时遇到sorter排序功能失效的问题,原因是slots和sorter共存导致。作者为了避免重写代码,选择利用filterDropdownAPI自定义列筛选功能,用以实现图标替换,从而达到预期效果,尽管这改变了升降序图标的原始位置。
摘要由CSDN通过智能技术生成

在这里插入图片描述
原本设计期待如上所示,我一开始的想法也是把标题换成slots,这样标题和图标就可以存在了,
在这里插入图片描述

在这里插入图片描述
但是这样做完,点升降序图标,只有升序有用,降序不起作用非常难点。
接下来怎么办?
查了资料发现应该是slots和sorter同时存在时,sorter排序失效。
简单的解决方法就是不用组件自带的sorter了,自己在标题插槽里写一个。but这个bug是测试发现,到这里我的代码已经全部写完,升降序都是按照自带组件写的,为了怕麻烦重写代码,我想到一个绕过重写的方法、
发现了一个Tabel 一个API filterDropdown 自定义列筛选功能 可以在表头后面插入一个功能 而我只是插入一个tip
所以代码我改成
在这里插入图片描述
在这里插入图片描述
现在展现成这样:在这里插入图片描述
也就是把原始的筛选图标换成了我想要的图标,这样功能实现了,只是升降序图标和tips图标换了位置。

您可以使用 Ant Design 的 Table 组件来实现表格的降序排序,并且加上按钮操作。以下是一个示例代码: ```jsx import React, { useState } from 'react'; import { Table, Button } from 'antd'; const data = [ { key: '1', name: 'John Doe', age: 28, address: 'New York', }, { key: '2', name: 'Jane Smith', age: 32, address: 'London', }, // ... more data ... ]; const ExampleTable = () => { const [sortOrder, setSortOrder] = useState(null); const columns = [ { title: 'Name', dataIndex: 'name', key: 'name', sorter: (a, b) => a.name.localeCompare(b.name), sortOrder, }, { title: 'Age', dataIndex: 'age', key: 'age', sorter: (a, b) => a.age - b.age, sortOrder, }, { title: 'Address', dataIndex: 'address', key: 'address', sorter: (a, b) => a.address.localeCompare(b.address), sortOrder, }, ]; const handleSortChange = (pagination, filters, sorter) => { setSortOrder(sorter.order); }; return ( <div> <Button onClick={() => setSortOrder(null)}>清除排序</Button> <Table columns={columns} dataSource={data} onChange={handleSortChange} /> </div> ); }; export default ExampleTable; ``` 此示例中,我们使用了 useState 钩子来跟踪排序顺序(序、降序或无序)。在 columns 中,我们使用 sorter 属性来指定排序函数,并将 sortOrder 设置为当前排序顺序。当用户点击表头时,会触发 onChange 事件,我们可以在 handleSortChange 函数中更新排序顺序。 在组件中,我们还添加了一个按钮,用于清除排序。当用户点击该按钮时,我们将 sortOrder 设置为 null,即清除排序。 您可以根据实际需求修改数据和表头,并将此示例代码集成到您的项目中。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值