[英]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 添加一個屬性,你應該將setState
與map
結合使用。 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.