antd可展开table的expandedRowRender的全部展开问题

本文探讨了在迁移Ant Design Table组件时遇到的展开所有行问题,通过发现rowKey属性的重要性,揭示了如何设置唯一rowKey以实现各行独立展开。解决过程包括代码调整和理解API关键参数。
摘要由CSDN通过智能技术生成

在项目中使用到了可展开的table,再将antd中的代码迁移到自己项目中后,发现了一个bug:

官网中的例子是每行单独展开,互不干扰的,

但是我在引用代码后,发现我无论我点击哪个,所有的行都会展开,开始我以为是代码粘贴的错误,检查一番后,发现没有问题

于是去阅读了一番table的api,展开功能的expandable下有个expandedRowRender控制展开的行

于是我将record打印出来,发现点击展开时,他会将所有的行数据都打印出来,而同样的操作打印官网的例子,则不是,在查了一些资料后,我发现table有个rowKey属性,用来绑定行的key值,具体代码:

<Table
    columns={this.state.columns}
    expandIconColumnIndex={6}
    rowKey="id"
    expandedRowRender={(record) => this.expandedRowRender(record)}
    dataSource={this.state.VipOrderInfoList}
/>

注意:rowKey必须绑定一个唯一值(根据你返回的数据来定) 

 

 

Ant Design Vue 2版本的Table组件默认只支持展开一级,如果需要展开多级,可以使用Table的`scopedSlots`和`renderContent`属性自定义渲染行的内容,实现多级展开。 以下是一个示例代码,展示如何实现多级展开Table: ```vue <template> <a-table :columns="columns" :data-source="dataSource"> <template #expandedRowRender="{record}"> <a-table :columns="subColumns" :data-source="record.subData"> <template #expandedRowRender="{record}"> <a-table :columns="subSubColumns" :data-source="record.subSubData"> </a-table> </template> </a-table> </template> </a-table> </template> <script> export default { data() { return { columns: [ { title: 'Name', dataIndex: 'name' }, { title: 'Age', dataIndex: 'age' }, { title: 'Address', dataIndex: 'address' }, ], subColumns: [ { title: 'Sub Name', dataIndex: 'subName' }, { title: 'Sub Age', dataIndex: 'subAge' }, { title: 'Sub Address', dataIndex: 'subAddress' }, ], subSubColumns: [ { title: 'Sub Sub Name', dataIndex: 'subSubName' }, { title: 'Sub Sub Age', dataIndex: 'subSubAge' }, { title: 'Sub Sub Address', dataIndex: 'subSubAddress' }, ], dataSource: [ { key: '1', name: 'John Brown', age: 32, address: 'New York No. 1 Lake Park', subData: [ { key: '1-1', subName: 'John Brown Jr.', subAge: 1, subAddress: 'New York No. 2 Lake Park', subSubData: [ { key: '1-1-1', subSubName: 'John Brown Jr. Jr.', subSubAge: 1, subSubAddress: 'New York No. 3 Lake Park', }, ], }, ], }, ], }; }, }; </script> ``` 在这个示例中,我们使用了三个不同的columns和dataSource,用于渲染Table的每一级。我们在第一级Table的`expandedRowRender`中定义了第二级Table,而在第二级Table的`expandedRowRender`中定义了第三级Table。这样就可以实现多级展开了。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值