一次只展开一个表格行 Ant Design React

Posted

技术标签:

【中文标题】一次只展开一个表格行 Ant Design React【英文标题】:Expand only one table row at a time Ant Design React 【发布时间】:2022-01-23 20:09:38 【问题描述】:

我无法做到这一点,我附上了下面的代码,请让我知道这里有什么问题?

在添加 expandedRowKeysonExpand 之前,它正在扩展所有表格行,但在实现它之后,它甚至没有打开一行

<Table
    rowkey="id"
    size="small"
    columns=groupsPackageColumns
    dataSource=roomPackages
    className="taglist-table"
    expandable=
        expandedRowRender: (record) => (
            <Table
                rowKey="id"
                columns=nestedTagsColumn
                dataSource=record.tags
                className="ant-table-container"
            />
        ),                    
        expandedRowKeys: activeExpRow,
        onExpand: (expanded, record) => 
            const keys = [];
            if (expanded) 
               keys.push(record.id); 
            
            setActiveExpRow(keys);
        ,
    
                        
/>

【问题讨论】:

【参考方案1】:

我不确定您的roomPackages 的数据结构。 但它应该包含key 属性。并推送record.key而不是record.id 如果dataSource 数据不包含key 属性,则会出现以下错误。

所以,我们需要修改数据,因为它包含key 属性。 我制作了可工作的 Codesandbox。

https://codesandbox.io/s/expandable-row-antd-4-17-4-forked-41rd3?file=/index.js

【讨论】:

我的对象中有 id 而不是密钥 我更新了我的沙盒和描述。

以上是关于一次只展开一个表格行 Ant Design React的主要内容,如果未能解决你的问题,请参考以下文章

Ant Design Vue子表格展开只展开一行,其他行折叠#yyds干货盘点#

Ant Design Vue 嵌套表格每次仅展开一行

React开发(173):ant design设置额外的展开行

React开发(274):ant design table额外展开行

ant-design-vue table表格合计行的实现

ant-design-vue:table 指定expandedRowKeys后会导致其他的折叠按钮无法展开与回缩-展开所有缩回所有和单项展开缩回并存开发