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

React.js+Antd Grid出现‘Each child in a list should have a unique key’报错求助

解决Antd Grid动态渲染的key警告问题

不用更换组件,针对你遇到的情况,按以下步骤排查解决:

  • 调整key的挂载层级
    不要直接把key绑定在Antd的Row组件上,React的key需要绑定在循环生成的最外层直接子元素上。部分Antd组件内部会额外生成DOM节点,可能导致key被“忽略”。示例代码:

    _.map(dataList, (item, index) => (
      // 新增一层容器,将key绑定在这里
      <div key={item.id || index}>
        <Row>
          <Col span={8}>{item.title}</Col>
          <Col span={16}>{item.content}</Col>
        </Row>
      </div>
    ))
    
  • 优先使用数据唯一标识作为key
    尽量避免用index作为key(数据顺序变化时会引发React渲染异常),如果数组项有唯一ID(如item.id),直接用它作为key;如果没有,可结合字段生成唯一值,比如${item.name}-${index},确保key不重复。

  • 排查Modal内部的其他循环内容
    既然警告来自父组件Modal,检查Modal的title、footer或其他子元素中是否存在未加key的动态渲染列表,这些地方的遗漏也可能触发该警告。同时确保Modal的子元素被单一容器包裹(比如用<div>包裹所有内容),避免多根节点的情况。

  • 验证key的唯一性
    打印你使用的key值(如console.log(item.id || index)),确认每一项的key都是唯一的,排除因数据重复导致的key冲突问题。

内容的提问来源于stack exchange,提问作者a.vilarinof

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 16:03:17