bindtap事件进行参数传递的问题,微信小程序官方文档提供了如下示例

<view data-alpha-beta="1" data-alphaBeta="2" bindtap="bindViewTap"> DataSet Test </view>
 
Page({
  bindViewTap:function(event){
    event.target.dataset.alphaBeta == 1 // - 会转为驼峰写法
    event.target.dataset.alphabeta == 2 // 大写会转为小写
  }
})

wx:for列表渲染,官方示例如下:

<view wx:for="\{\{array\}\}">
  \{\{index\}\}: \{\{item.message\}\}
</view>

如果bindtap传参时,顺便使用了wx:for列表渲染

<view wx:for="\{\{array\}\}" data-id="item.id" bindtap="getId">
  \{\{index\}\}: \{\{item.message\}\}
</view>

此时触发view的tap事件,会出现event.target.dataset.id获取时有时无的情况。

解决方案:

<view wx:for="\{\{array\}\}">
  <view data-id="item.id" bindtap="getId">
	  \{\{index\}\}: \{\{item.message\}\}
  </view>
</view>