解决Antd 二次封装表格的可编辑功能(editable table)不生效的问题

问题概述

使用了Antd Table组件,因为需要自定义的筛选功能,进行了二次封装。
之后加上了可编辑行功能,当点击编辑图标,发现表格并不会有任何变化。
在这里插入图片描述
代码:

<Form
	component={false}
	form={docInfoForm}
>
	<CSTable
		dataSource={dataSource}
		setDataSource={setDataSource}
		columns={mergedColumns}
		rowSelection={rowSelection}
		rowKey="key"
		components={{
			body: {
				cell: DocInfoEditableRow
			}
		}}
	/>
</Form>

解决思路

因为没有任何报错,只能猜有可能出错的地方

  • 封装的Table组件内部有问题

引入了原本的Table组件,逐一排查,逐一比较不同的地方。发现还是没有什么眉目。

偶然一次注释了Form组件的component属性,发现居然渲染出来了。就让我猜测可能是React没有识别到dom的变化,所以我在CSTable上加了key属性,给的值是随机数,发现果然可行!

解决办法

const randomKey = Math.floor(Math.random() * 10000) + 1

<Form
	component={false}
	form={docInfoForm}
>
	<CSTable
		dataSource={dataSource}
		setDataSource={setDataSource}
		columns={mergedColumns}
		rowSelection={rowSelection}
		rowKey="key"
		components={{
			body: {
				cell: DocInfoEditableRow
			}
		}}
		key={randomKey}       -- 添加的随机key
	/>
</Form>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值