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

React项目运行出现相同key警告,求助错误原因及解决方法

React列表key重复报错原因分析

报错核心提示:Warning: Encountered two children with the same key, 0

  • 你的代码中使用m.id作为列表<li>元素的key属性,React要求同层级列表元素的key必须唯一,出现这个报错的根本原因是后端接口返回的movies数组中,存在至少两条数据的id字段值为0,出现了重复。
  • 你可以先在接口请求的第二个then回调里加一行日志console.log(json.movies),刷新页面后在控制台查看返回的数组,确认是否有重复id的条目。
  • 临时修复方案:如果暂时无法调整后端接口的返回值,可以在map遍历的时候取索引和id拼接作为key,修改渲染部分的代码如下:
{movies.map((m, index) => (
  <li key={`${m.id}-${index}`}>
    <Link to={`/movies/${m.id}`}>{m.title}</Link>
  </li>
))}

注意:该方案仅做临时验证使用,列表有增删、排序操作时索引不稳定,会影响React的diff性能,最优解是要求后端保证每条movie数据的id全局唯一

  • 额外代码问题排查:你的接口请求逻辑里存在一处类型判断错误,response.status是数字类型,你用!== "200"和字符串做恒等判断,无论接口返回什么状态码都会触发错误逻辑,需要修改为if (response.status !== 200)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 23:06:04