前端React:antd Table组件 去除key、rowKey相关的Warning

本文针对React项目中Table组件出现的Key相关警告问题提供了解决方案,包括设置rowKey属性及columns配置中的key,确保数据唯一性,避免警告并提高表格组件的稳定性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

感谢鹊湖居士https://www.linjiaqun.com/js/329.html),成功解决了问题,记录学习了,现转载如下:

React项目中总是存在Key相关的warning,这个不能忍!!!

目前遇到的warning有以下几个:

⑴设置了rowKey属性,但所指定字段的值不是唯一的

Warning: Each child in an array or iterator should have a unique "key" prop.

⑵未设置rowKey属性,不过设置了columns属性的配置中第一列的key(react所需),但key所指定字段的值不是唯一的

Warning: Each record in table should have a unique `key` prop,or set `rowKey` to an unique primary key.

⑶未设置rowKey属性,也未设置columns属性的配置中第一列的key(react所需)

Warning: Each record in dataSource of table should have a unique `key` prop, or set `rowKey` to an unique primary key,see https://u.ant.design/table-row-key

【原因】

根据官方的说法 https://ant.design/components/table-cn/#注意  ,是蛋疼的react规范所造成的。

按照 React 的规范,所有的组件数组必须绑定 key。在 Table 中,dataSource 和 columns 里的数据值都需要指定 key 值。对于 dataSource 默认将每列数据的 key 属性作为唯一的标识。

如果你的数据没有这个属性,务必使用 rowKey 来指定数据列的主键。若没有指定,控制台会出现以下的提示,表格组件也会出现各类奇怪的错误。

不过antd也是坑爹,在未指定的情况下就不能按循序,自动把index设置为key的值吗,在很多统计类的表中根本就没有唯一性的字段。

【解决办法】

  1. 设置rowKey属性,指定值为唯一的字段

  2. 设置columns属性的配置中的key(好像主要是第一列),指定值为唯一的字段

【其他问题】

如果dataSource中每个字段的值都不是唯一的怎么办?

自己造一个‘key’字段吧,循环把index设置为‘key’的值就可以了

 

以上就是antd Table组件在console中经常出现key、rowKey相关的warning的解决办法,欢迎交流。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值