我是新来的whitreact。我总是在浏览器上看到这样的消息:“列表中的每个子元素都应该有一个唯一的“键” prop ”。我正在使用组件和Bootstrap。
我尝试了不同的方法来传递卡上的API key={values.id},但出现了问题。有人能帮我吗?
import React, { useState, useEffect } from 'react';
function Home() {
const [fake, setFake] = useState([]);
console.log(fake);
useEffect(() => {
fakestore();
}, [])
const fakestore = async () => {
const response = await
fetch('https://api.escuelajs.co/api/v1/products');
const jsonData = await response.json();
setFake(jsonData);
}
return (
<>
<div className='container'>
<div className='row mt-5'>
{fake.map((values) => {
return (
<>
<div className='col-12 col-md-6 col-lg-4 mt-5'>
<div className="card" key={values.id}>
<img src={values.images} className="card-img-top w-100" alt={values.description} />
<div className="card-body">
<h5 className="card-title">{values.title}</h5>
<p className="card-text">{values.description}</p>
<p className="card-text"><strong>€ {values.price.toFixed(2)}</strong></p>
<button className="btn btn-primary">Add to Wishlist </button>
</div>
</div>
</div>
</>
)
})}
</div>
</div>
</>
);
}
export default Home;
谢谢
希望修复浏览器上的错误信息。
2条答案
按热度按时间brgchamk1#
密钥需要连接到Map中的最高父节点:
另外,这里不需要碎片,所以我将其删除
w6mmgewl2#
作为@pacifica94 said above,“
key
“prop需要放置在map()
内的元素/组件的最外层 Package 器中,换句话说,它是map()
内的直接元素/组件。这里需要注意的是,
key
是一个特殊的属性,你可以在任何组件中添加它。如果你希望 Package 器是一个React片段(<></>
),你也可以像这样添加key:希望这能有所帮助!