相关平台
微信小程序
小程序基础库: 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
1条答案
按热度按时间bjp0bcyl1#
但是 ,原生小程序转taro, catchtap 事件是可以转化为 onClick 的
小程序的绑定事件有 冒泡事件和非冒泡事件, 普通事件绑定:bindtap, 绑定并阻止事件冒泡:catchtap
但是 至于代码里面为什么会用到ontap去绑定事件,可能是因为ontap 事件实现的结果和catchtap 是一样的,但是在小程序开发这文档里面并没有介绍这个 ontap 事件,所以taro 转化不了,
最后选择使用正则表达式 ontap="([\S\s]+)" 全局匹配替换为 onClick={this.$1} 解决ontap 转为onClick事件