原生小程序转taro 之后对应的ontap事件没有转为对应的onClick

niknxzdl  于 2023-02-04  发布在  其他
关注(0)|答案(1)|浏览(285)

相关平台

微信小程序

小程序基础库: 2.13.0
使用框架: React

复现步骤

<view data-id="{{ item.postcardId }}" ontap="postCardClick" class="postcard-item-main-wrapper"></view>

期望结果

ontap 事件可以转化为对应的onClick

实际结果

ontap 没有进行转化,导致事件失效

环境信息

👽 Taro v3.3.14

  Taro CLI 3.3.14 environment info:
    System:
      OS: macOS 11.6
      Shell: 5.8 - /bin/zsh
    Binaries:
      Node: 14.17.5 - /usr/local/bin/node
      Yarn: 1.22.15 - /usr/local/bin/yarn
      npm: 6.14.14 - /usr/local/bin/npm
    npmPackages:
      @tarojs/components: 3.3.14 => 3.3.14 
      @tarojs/mini-runner: 3.3.14 => 3.3.14 
      @tarojs/react: 3.3.14 => 3.3.14 
      @tarojs/runtime: 3.3.14 => 3.3.14 
      @tarojs/taro: 3.3.14 => 3.3.14 
      @tarojs/webpack-runner: 3.3.14 => 3.3.14 
      @tarojs/with-weapp: ^3.3.14 => 3.3.15 
      babel-preset-taro: 3.3.14 => 3.3.14 
      eslint-config-taro: 3.3.14 => 3.3.14 
      react: ^17.0.0 => 17.0.2
bjp0bcyl

bjp0bcyl1#

但是 ,原生小程序转taro, catchtap 事件是可以转化为 onClick 的

小程序的绑定事件有 冒泡事件和非冒泡事件, 普通事件绑定:bindtap, 绑定并阻止事件冒泡:catchtap
但是 至于代码里面为什么会用到ontap去绑定事件,可能是因为ontap 事件实现的结果和catchtap 是一样的,但是在小程序开发这文档里面并没有介绍这个 ontap 事件,所以taro 转化不了,
最后选择使用正则表达式 ontap="([\S\s]+)" 全局匹配替换为 onClick={this.$1} 解决ontap 转为onClick事件

相关问题