在 ReactJS 中将 key 参数应用于以下代码时,我有点困惑,我知道我们需要使用 key 参数来唯一标识每个 DOM 元素,当我尝试在按钮中使用 key={index} 时出现错误(遇到两个孩子用同一个钥匙)。
这里我也有点疑惑,因为更新setQuantity所有产品中的所有项目(如下图所示),不知道如何使用唯一的关键项目来仅更新每个产品数量。
任何帮助表示赞赏。
更新 1:代码现在更新为 key={productName},但在添加/减去单个产品时,所有产品的加/减值仍在更新
function Home({ props }) {
//quantitiyselected, to set the no. of items purchased
const [quantitiyselected, setQuantity] = useState(0);
// below function to add, subtract quantity
let selectquantity = (e) => {
if (e.currentTarget.name == "add") {
let i = quantitiyselected + 1;
setQuantity(i);
} else if (e.currentTarget.name == "subtract" && quantitiyselected > 0) {
let z = quantitiyselected - 1;
setQuantity(z);
} else;
};
return (
<div className="products">
{props.map((eachproduct, index) => {
let productName = eachproduct.product_name;
let producNumber = eachproduct.producNumber;
let price = eachproduct.price;
let desc = eachproduct.productDescription;
let photo = eachproduct.image_URL;
let stockQuantity = eachproduct.stockQuantity;
return (
<div className="products" key={productName }>
<ul>
<li>
<img className="products-image" src={photo} />
</li>
<li>{productName} </li>
<li>
Item No:{producNumber}(InStock:{stockQuantity})
</li>
<li>price:{price}£ </li>
<li>{desc}</li>
<li>
<ButtonGroup aria-label="quantityofproduct">
<Button
variant="secondary"
name="subtract"
value="subtract"
onClick={selectquantity}
>
-
</Button>
<Button variant="secondary">
{quantitiyselected}
</Button>
<Button
慕无忌1623718
相关分类