You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Antd列表unique key报错排查:多组件key是否重复?

解决React列表"unique key"警告的排查步骤

首先明确:React的key属性仅要求在同一个列表的兄弟元素之间唯一,不同列表(比如你的MyScrap和MyBoard组件)之间的key重复不会触发这个警告,所以你的问题根源不在跨列表的id冲突上。

接下来按以下步骤排查:

  • 检查key是否绑定到了列表循环的顶级子元素上
    比如使用Antd的List组件时,要确保key直接加在List.Item上,而非内部嵌套元素:

    // 正确写法
    <List dataSource={likedPosts}>
      {(item) => <List.Item key={item.id}>{item.title}</List.Item>}
    </List>
    
    // 错误写法(key加在了内部元素,List.Item无key)
    <List dataSource={likedPosts}>
      {(item) => <List.Item><div key={item.id}>{item.title}</div></List.Item>}
    </List>
    
  • 验证单个列表内的id是否真的唯一
    可以临时给key加列表前缀测试(比如scrap-${item.id}或board-${item.id}),如果警告消失,说明对应列表内确实存在重复id,需要修正数据源的唯一性。

  • 排查嵌套列表的key设置
    如果组件内部还有子列表,要确保子列表的每一项也添加了唯一key,不要只处理外层列表。

  • 确认Antd组件的特殊key配置
    比如Antd的Table组件需要通过rowKey属性指定行的唯一标识,而非直接在TableRow上添加key:

    <Table dataSource={boardPosts} rowKey="id" columns={columns} />
    

内容的提问来源于stack exchange,提问作者Clloud

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 07:21:36