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

React列表已设key仍报Each child in a list needs unique 'key'警告如何解决

问题原因

你在List组件中为<PokemonItem />设置的key属性没有问题,控制台警告来源于PokemonItem组件内部的类型遍历逻辑:你调用pokemon.types.map()渲染类型标签时,返回的<div className="type">元素没有设置唯一key属性,这是React中所有数组渲染都需要遵守的规则,不止是外层列表。

解决方案

由于单个宝可梦的属性类型不会重复,直接用类型值作为key即可,修改对应代码段:

{pokemon.types.map((type) => {
  return <div key={type} className="type">{type}</div>;
})}

如果存在小概率同类型重复的特殊场景,也可以用数组下标作为兜底(仅在列表不会动态排序/增删时使用):

{pokemon.types.map((type, index) => {
  return <div key={index} className="type">{type}</div>;
})}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 07:45:04