gpt4 book ai didi

javascript - 数组中对象的 setState

转载 作者:搜寻专家 更新时间:2023-11-01 05:03:20 25 4
gpt4 key购买 nike

鉴于我的状态看起来是这样的:

cart: [
{ id: 1, name: 'apple', price: 100, quantity: 1 }
]

如何setState 该特定对象的 quantity 属性?

最佳答案

您可以获取 indexOf 购物车中您要更新的商品,并使用该商品之前的所有内容更新 cart、您更新的商品以及其余项目。

示例

class App extends React.Component {
state = {
cart: [
{ id: 1, name: "apple", price: 100, quantity: 1 },
{ id: 2, name: "orange", price: 50, quantity: 10 },
{ id: 3, name: "banana", price: 20, quantity: 100 }
]
};

increaseQuantity = item => {
this.setState(previousState => {
const { cart } = previousState;
const itemIndex = cart.indexOf(item);

return {
cart: [
...cart.slice(0, itemIndex),
{ ...cart[itemIndex], quantity: cart[itemIndex].quantity + 1 },
...cart.slice(itemIndex + 1)
]
};
});
};

render() {
return (
<div>
{this.state.cart.map(item => (
<div key={item.id} onClick={() => this.increaseQuantity(item)}>
{item.name} {item.quantity}
</div>
))}
</div>
);
}
}

关于javascript - 数组中对象的 setState,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51126655/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com