javascript - 从 React 中的数组中删除具有唯一 ID 的项目
问题描述
我是一个新手,并试图通过单击一个按钮从数组中删除一个项目。但是,我无法检索我想要的 id。我能从 e.target 得到的只是“输入”本身,而不是整个项目,更不用说 id。
//some other stuff
deleteDrink = (event) => {
console.log(event.target)
}
return(
//blahblahblah[enter image description here][1]
orders.map((order, i) => (
<Order
key={orders[i].id}
drink={orders[i].drink}
price={orders[i].price}
quantities={orders[i].number}
note={orders[i].note}
deleteDrink={this.deleteDrink}
/>
) ```
When I clicked the button, all I can get is:
<input class="delete-button br4 w-10 grow" type="button" value="Delete"></input>
what should I do to retrieve the id?
[1]: https://i.stack.imgur.com/KM7Ng.jpg
解决方案
不要将处理程序设置为 ,而是this.deleteDrink
设置一个处理程序,该处理程序使用要删除的元素的 ID(或索引)进行调用: deleteDrink
deleteDrink={() => { this.deleteDrink(order.id); }}
deleteDrink = (id) => {
console.log('deleting', id)
}
要删除特定的order
何时deleteDrink
被调用,也许你想要这样的东西:
deleteDrink={() => { this.deleteDrink(i); }}
// Example if you're using hooks:
deleteDrink = (i) => {
setOrders([
...orders.slice(0, i),
...orders.slice(i + 1)
]);
}
推荐阅读
- android - Flutter firebase消息未收到通知
- .htaccess - 需要使用通配符重写规则
- arduino-uno - 温度传感器对 LED 的利用率
- regex - 2 提取构建号和版本名称的正则表达式
- swift - 如何在使用 Callkit 时播放声音,例如铃声?
- java - 无法从应用程序中提取 Info.plist:Plist 文件不存在:
- powershell - IIS SSL 证书绑定(获取绑定信息)
- amazon-s3 - AWS Cognito 可以跨区域吗?如果没有,有什么解决方法吗?
- python - 使用字典理解将国家/地区作为键返回,将国家/地区的城市总数作为值返回
- matlab - 对数似然的 fmincon 的快速替代方案