如何将新值推送到 React 中的对象数组

How to push new value into array of object in React

我认为问这个问题可能很愚蠢,但请相信我是 React 的新手。我正在尝试将新键和值推送到对象数组,但我做不到。有人可以帮助我如何实现我的目标。谢谢

代码

this.state= {
cartItems=[
{name:'item1',price:''},
{name:'item2',price:''},
{name:'item3',price:''},
]

我想在对象数组的末尾添加新值,如 quantity:0。请帮助我

也许试试这个

const newState = this.state.cartItems.map(item => {
  item.quantity = 0;

  return item;
});

this.setState({cartItems: newState});

如果要更新状态,向每个对象添加 属性,则应将 setStatemap 结合使用。 Array.prototype.map 允许您变换每个对象,如下所示:

this.setState(state => {
  cartItems: state.cartItems.map(cartItem => ({ 
    ...cartItem, // Keep all old properties
    quantity: 0 // Add quantity
  })
})

只有在初始化程序之后调用setState时才应该这样做。如果赋值给this.state时需要修改数据权,直接映射数组即可。

this.state= {
  cartItems:[
    {name:'item1',price:''},
    {name:'item2',price:''},
    {name:'item3',price:''},
  ]
}
updateCartItems=()=>{ 
   var cartItems = this.state.cartItems.map((item)=>{
      return {...item,quantity:0}
   })
   this.setState({cartItems})
}