我正在尝试使用不变性助手来更新处于状态的数组中的对象字段。使用不变性帮助程序值得吗?我确实获得了有关如何以另一种方式执行此操作的帮助,但只是想学习如何合并新内容。
这是我当前尝试更改的方式。我正在通过另一种方法传递索引。下面也是假定状态,它是一个对象数组,如下所示:
{id:“ 1”,名称:“ foo”,描述:“ barbarbar”,价格:4.99,数量:1},
state = {
cartItems = []
}
updateQuantity = (index) => {
// const items = [...this.state.cartItems];
this.setState({cartItems:
update(this.state.cartItems[index], {
quantity: {$apply: function(x) {return x + 1;}}
}
)
})
}
编辑:最近尝试过这种方法,并且数量有所增加,但无法弄清楚如何将其与状态合并
const item = this.state.cartItems[index];
const newCartItem = update(item, { quantity: {$apply: function(x) {return x+1}} });
console.log(newCartItem);
// this.setState({ cartItems: update(item, newCartItem ) });
我希望在调用此方法时,已经在购物车中的商品的数量字段增加1。