reactjs - 如何将 aa 参数传递给 map() 函数中的事件处理程序?
问题描述
以下例程在选中或取消选中复选框时调用事件处理程序:
{deliveries.map((x) => (
<tr>
<td className="dataTableCell">
<input type="checkbox"
onChange={(x) => {
this.setSelectedDelivery({x.DeliveryId})
}} />
</td>
<tr>
))}
我尝试将 x.DeliveryId 参数作为 x.DeliveryId 和 {x.DeliveryId} 传递,但这些方法都不起作用。我需要如何构建此代码才能成功地将 x.DeliveryId 值作为参数传递给事件处理程序?
解决方案
我猜当你在做的时候:
onChange={(x) => { this.setSelectedDelivery({x.DeliveryId}) }}
该x
值被 onChange 方法的事件覆盖,这就是x.DeliveryId
失败的原因,因为event
(在这种情况下x
)没有该DeliveryId
属性。
解决它的一种方法是向您onChange
的方法添加两个参数,一个用于事件,另一个用于您传递的变量,以防您使用 的任何属性event
:
onChange={(event, x) => { this.setSelectedDelivery(x.DeliveryId) }}
我您没有使用任何属性,event
只是不要将任何参数传递给您的onChange
方法:
onChange={() => { this.setSelectedDelivery(x.DeliveryId) }}
编辑:
我不确定如何setSelectedDelivery
构建,但我可以看到你正在传递一个object
without values
,但我认为你只需要id
这就是为什么你看到你在评论中提到的错误,所以你必须通过x.DeliveryId
给你的setSelectedDelivery
推荐阅读
- c# - 仅显示第一项的列表框
- c# - 如何在 wpf 3d 立方体中插入 2d 控件
- seaborn - 用单位刻面线图
- javascript - 如何将 FileSystemFileEntry.file 包装到返回 Observable 的函数中?
- fme - 如何复制 FME 格式属性
- ruby-on-rails - 检查控制器中是否存在记录
- ios - UIImageView 在不同设备上保留情节提要“预览屏幕边界” - 框架不根据屏幕尺寸更新
- node.js - 监控 NodeJS API
- javascript - 具有服务器端处理的 DataTable
- python - 使用 Python 请求修复 SSL 证书错误