【发布时间】:2019-09-21 17:54:56
【问题描述】:
在我的状态下,我有一个数组,我将其映射到 render 函数中:
州
this.state = {
newItem: {
name: "",
amount: 0
},
products: [
{
name: "Item",
amount: 5
},
{
name: "Item",
amount: 5
},
{
name: "Item",
amount: 5
}
]
}
我想通过单击该元素的按钮从数组产品中删除元素。但我试图做的,一切都失败了。我搜索了很多,并在逻辑上找到了最常见的解决方案,但它也没有奏效。这是删除功能:
删除函数
delete(e) {
this.setState(prevState => ({ products: prevState.products.filter((product) => {
return product !== e.target.value
})}))
console.table(this.state.products)
}
映射的 JSX 代码
{
this.state.products.map((item, index) => {
return(
<div key={index}>
<input readOnly value={this.state.products[index].name} type="text" />
<button disabled>-</button>
<input readOnly value={this.state.products[index].amount} type="number" />
<button disabled>+</button>
<button onClick={(e) => this.delete(e)}>Delete</button>
</div>
)
})
}
【问题讨论】:
-
也许this answer可以帮助你。
-
@HMR 谢谢这个答案也很有趣
标签: javascript arrays reactjs state