微信小程序_bindtap传参

        关于微信小程序bindtap传参,有很多博客参考,这里不在赘述,下面放一个示例:

wxml:

<view id="topTabbar">
  <view class="option" wx:for="{{options}}" wx:key="index" bind:tap="switchCurrentPage" data-pageIndex="{{index}}">{{item}}</view>
</view>

js:

switchCurrentPage: function(e) {
    console.log(e);
    let pageIndex = e.currentTarget.dataset.pageindex;
    this.setData({
      currentPageIndex: pageIndex,
    });
  },

        这里主要说我踩得一个坑,我一开始一直是写:

let pageIndex = e.currentTarget.dataset.pageIndex;

        但是控制台输出一直是undefined类型,后面console.log(e),才发现里面的变量名是pageindex.....应该是会自动转成全小写字母,是HTML和DOM标准要求

        询问了一下AI,解释如下:

        在微信小程序中,当你使用 data- 属性来向组件传递数据时,这些属性在事件对象 e 中的 dataset 属性里会以小写字母的形式出现,即使在WXML中你定义它们时使用了驼峰命名法(camelCase)。这是因为HTML和DOM标准要求属性名称为小写,而微信小程序的WXML是基于HTML的一个扩展。

        所以,当你在WXML中使用 data-pageIndex="{{index}}" 时,实际上在JavaScript的事件处理函数中,这个属性会被转换为全小写,即 data-pageindex。这就是为什么你在控制台中看到的是 pageIndex 而不是 pageIndex

        因此,你需要在事件处理函数中使用 e.currentTarget.dataset.pageindex 来获取传递的参数,而不是 e.currentTarget.dataset.pageIndex

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值