javascript - 网格容器内的卡片:列表中的每个孩子都应该有一个唯一的“key”道具
问题描述
我做错了什么?它还说:“检查”的渲染方法Card
,这是在这里:
<div className="grid-container">
{pokemonData.map((pokemon, i) => {
console.log(pokemon.id) // unique numbers are here
return <Card key={pokemon.id} pokemon={pokemon} />
})}
</div>
卡片组件本身:
function Card({ pokemon }) {
return (
<div className="card">
<div className="card__image">
<img src={pokemon.sprites.front_default} alt="Pokemon" />
</div>
<div className="card__name">
{pokemon.name}
</div>
<div className="card__types">
{
pokemon.types.map(type => {
return (
<div className="card__type" style={{backgroundColor: typeColors[type.type.name]}}>
{type.type.name}
</div>
)
})
}
</div>
<div className="card__info">
<div className="card__data card__data--weight">
<p className="title">Weight:</p>
<p>{pokemon.weight}</p>
</div>
<div className="card__data card__data--height">
<p className="title">Height:</p>
<p>{pokemon.height}</p>
</div>
<div className="card__data card__data--ability">
<p className="title">Abilities:</p>
{/* {console.log(pokemon.abilities)} Temporary for dev puprose */}
{pokemon.abilities.map(ability => <p>{ability.ability.name}</p>
)}
</div>
</div>
</div>
);
}
export default Card;
解决方案
You can use the index of the array may be your data is having some kind of duplicate. It is recommended that you pass a key prop
whenever you are returning a list.
<div className="grid-container">
{pokemonData.map((pokemon, i) => {
console.log(pokemon.id) // unique numbers are here
return <Card key={i} pokemon={pokemon} />
})}
</div>
Equally, check this segment of card components.
{
pokemon.types.map((type,i) => {
return (
<div key={i} className="card__type" style={{backgroundColor:
typeColors[type.type.name]}}>
{type.type.name}
/div>
)
})
}
And
<div className="card__data card__data--ability">
<p className="title">Abilities:</p>
{/* {console.log(pokemon.abilities)} }
{pokemon.abilities.map((ability, i) => <p key={i}>{ability.ability.name}
</p>
)}
</div>
推荐阅读
- ios - Different cell depending on the cell text
- python - 如何将输入的开头移动到and?
- android - 使用相机验证预先存储的图像
- node.js - 尝试在本地安装 grpc-node
- php - 如何让 Typeahead.js 在 Laravel 5.7 中搜索特定的数据库(多个)
- javascript - React/Express Fetch 请求不显示 Json 对象数组
- reactjs - 如何在 Reactjs 中添加丰富的代码片段?
- html - 为什么 contenteditable div 插入一个“。” 在多个空格的第一个标签之前?
- java - 未找到默认活动 - 无法解决此问题
- html - div 底部在列中对齐