You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将JavaScript map函数的index参数传递给onClick事件函数

解决方案

核心思路:在map遍历的匿名回调内,利用闭包将当前轮次的index/productObject主动传入点击处理函数即可,两种常用实现方式如下:

方式1:传入index参数

第一步:修改onClick函数定义,新增index入参

const onClick = (e, index) => {
    e.persist()
    console.log(e)
    handleImageClick(productObjects[index])
}

第二步:在绑定onClick时传入当前index

{productObjects.map((productObject,index) => (
    <ImageWrapper key={index} src={productObject.image} onClick={(e) => onClick(e, index)}>
                    
    </ImageWrapper>
))}

方式2:直接传入当前productObject(更推荐,无需额外通过index取值)

第一步:修改onClick函数定义,直接接收商品对象参数

const onClick = (e, product) => {
    e.persist()
    console.log(e)
    handleImageClick(product)
}

第二步:在绑定onClick时传入当前遍历到的productObject

{productObjects.map((productObject,index) => (
    <ImageWrapper key={index} src={productObject.image} onClick={(e) => onClick(e, productObject)}>
                    
    </ImageWrapper>
))}

小提示:如果你的商品列表存在动态增删、排序的场景,建议不要用index作为ImageWrapper的key属性,换成商品唯一ID(比如productObject.id)可以避免渲染异常。

内容的提问来源于stack exchange,提问作者Ben

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 21:09:02