繁体   English   中英

如何在 React 中将新值推送到 object 数组中

[英]How to push new value into array of object in React

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

代码

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

我想在 object 的数组末尾添加新的值,例如quantity:0 请帮我

如果你想更新 state 为每个 object 添加一个属性,你应该将setStatemap结合使用。 Array.prototype.map允许您转换每个 object,如下所示:

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

只有在初始化器之后调用setState时,才应该这样做。 如果您需要在分配给this.state时修改数据,直接使用 map 数组即可。

也许试试这个

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

  return item;
});

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM