如何将新值推送到 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});
如果要更新状态,向每个对象添加 属性,则应将 setState
与 map
结合使用。 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})
}
我认为问这个问题可能很愚蠢,但请相信我是 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});
如果要更新状态,向每个对象添加 属性,则应将 setState
与 map
结合使用。 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})
}