antd表格排序踩坑

1.文本无法直接拿来排序,如果是文本中带有数字,只用数字比大小可以用replace掉字符串

2.如果是纯文本排序,可以给表格文本用如下属性

sorter: (a, b) => {
            var stringA = a.name.toUpperCase() // ignore upper and lowercase
            var stringB = b.name.toUpperCase() // ignore upper and lowercase
            if (stringA < stringB) {
              return -1
            }
            if (stringA > stringB) {
              return 1
            }
            // names must be equal
            return 0
          },
          sortDirections: ['descend', 'ascend'],

3.如果有一列数据需要默认排序,其他几列数据不排序但是需要有排序功能:

慎用sortOrder,因为用了sortOrder后,其表头就不能点击进行排序

        {
          title: '排名',
          dataIndex: 'rank',
          width: 110,
          align: 'center',
          key: 'wifi',
          sorter: (a, b) => a.rank - b.rank,
        },
        {
          title: '评分',
          dataIndex: 'score',
          width: 120,
          align: 'center',
          key: 'score',
          sorter: (a, b) => a.score - b.score,
          defaultSortOrder: 'descend',
        },

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Ant Design的表格组件支持嵌套表格功能。具体可以通过以下步骤实现: 1. 在columns数组中,添加一个子表格的render方法。该方法返回一个新的表格组件,其中columns属性为子表格的列。 2. 在父表格的dataSource数据中,为每一个需要展示子表格的行添加一个children属性。该属性为一个数组,包含子表格中的数据。同时,子表格数据的格式也需要与父表格数据的格式一致。 下面是一个简单的示例代码: ``` import React, { useState } from 'react'; import { Table } from 'antd'; const columns = [ { title: '姓名', dataIndex: 'name', key: 'name' }, { title: '年龄', dataIndex: 'age', key: 'age' }, { title: '地址', dataIndex: 'address', key: 'address' }, { title: '操作', dataIndex: '', key: 'x', render: () => <a>展开</a>, }, ]; const data = [ { key: 1, name: 'John Brown', age: 32, address: 'New York No. 1 Lake Park', children: [ { key: 11, name: 'Jim Green', age: 42, address: 'London No. 1 Lake Park', }, { key: 12, name: 'Joe Black', age: 32, address: 'Sidney No. 1 Lake Park', }, ], }, { key: 2, name: 'Joe Black', age: 32, address: 'Sidney No. 1 Lake Park', }, ]; const NestedTable = () => { const [expandedRowKeys, setExpandedRowKeys] = useState([]); const onExpand = (expanded, record) => { if (expanded) { setExpandedRowKeys([...expandedRowKeys, record.key]); } else { setExpandedRowKeys(expandedRowKeys.filter((key) => key !== record.key)); } }; return ( <Table columns={columns} dataSource={data} expandedRowKeys={expandedRowKeys} onExpand={onExpand} rowKey="key" expandable={{ expandedRowRender: (record) => ( <Table columns={columns} dataSource={record.children} rowKey="key" /> ), }} /> ); }; export default NestedTable; ``` 在这个示例中,我们创建了一个包含两行数据的父表格。第一行数据包含一个子表格,我们使用了children属性为其指定子表格数据。同时,在columns数组中添加了一个render方法,用于展示子表格。在父表格组件中,我们使用了antd的expandable属性,指定了展开子表格的方式和渲染方法。 希望这个示例能够帮助你了解如何在Ant Design的表格组件中实现嵌套表格功能。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值