Ant Design4.0-Table

在开发的过程中,使用 Table 组件的expandedRowKeys 发生只有点击默认展开icon时,自己编写的expandedRowKeys才生效,当在其他地方设置函数改变expandedRowKeys时不生效,在github调研之后发现,是我的写法出现问题了。虽然不懂为什么那么写会出错…

之前的代码
点击Table的展开icon,expandedRowRender 内容能显示,点击【展开】,expandedRowRender 内容不显示

const columns = [
      { title: "Name", dataIndex: "name" },
      { title: "Age", dataIndex: "age"},
      { title: "Address", dataIndex: "address"},
      {
        title: "Action",
        dataIndex: "action",
        render: (text, record) => (
          <div>
            <a
            onClick={() => {
              this.handleExpand(false, record.key);
            }}
            >收起</a>
            <a
              onClick={() => {
                this.handleExpand(true, record.key);
              }}
            >
              展开
            </a>
          </div>
        )
      }
    ];
const data = [
  {
    key: 1,
    name: "John Brown",
    age: 32,
    address: "New York No. 1 Lake Park",
    description:
      "My name is John Brown, I am 32 years old, living in New York No. 1 Lake Park."
  }
];
 handleExpand = (expanded, key) => {
 	const { expandedRowKeys } = this.state;
    if (!expanded && expandedRowKeys.includes(key)) {
      expandedRowKeys.forEach((t, i) => {
        if (t === key) expandedRowKeys.splice(i, 1);
      });
    } else if (!expandedRowKeys.includes(key)) expandedRowKeys.push(key);
    this.setState({ expandedRowKeys });
  };
<Table
  columns={columns}
  dataSource={data}
  rowKey={rowKey}
  expandedRowKeys={expandedRowKeys}
  onExpand={this.handleExpand}
  expandedRowRender={this.expandedRowRenderContent}
/>

之后的代码
主要是改变 expandedRowKeys 的获取方式,这样子写,点击展开,expandedRowRender 内容就能正确显示了

handleExpand = (expanded, key) => {
 	let expandedRowKeys = [...this.state.expandedRowKeys];
    if (!expanded && expandedRowKeys.includes(key)) {
      expandedRowKeys.forEach((t, i) => {
        if (t === key) expandedRowKeys.splice(i, 1);
      });
    } else if (!expandedRowKeys.includes(key)) expandedRowKeys.push(key);
    this.setState({ expandedRowKeys });
  };
<Table
  columns={columns}
  dataSource={data}
  rowKey={rowKey}
  expandedRowKeys={expandedRowKeys}
  onExpand={this.handleExpand}
  expandedRowRender={this.expandedRowRenderContent}
/>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值