5 回复
你好,我这里经过测试,并没有发现这个问题,并且使用hello-uniapp,也没有发现触发两次的问题,请您提供一下一个可以复现的项目
更多关于uni-app vue3 使用map @markertap会触发两次的实战教程也可以访问 https://www.itying.com/category-93-b0.html
这是下载使用hello-uniapp,无代码更改,对地图的markers进行操作的,@markertap事件PC端只会触发一次,移动端不加uni.showModal触发了两次,加上uni.showModal 触发一次,
这是下载使用hello-uniapp,无代码更改,对地图的markers进行操作的,@markertap事件PC端只会触发一次,移动端不加uni.showModal触发了两次,加上uni.showModal 触发一次,
还没修复,我在 nvue 页面也遇到
在uni-app Vue3中,@markertap
事件触发两次的问题通常是由于事件冒泡或重复绑定导致的。以下是常见原因及解决方法:
-
检查重复绑定: 确保没有在多个地方(如模板和JS代码中)重复绑定了
@markertap
事件。 -
使用
.once
修饰符:
<map @markertap.once="handleMarkerTap"></map>
- 检查组件嵌套: 如果map组件被多层嵌套,可能会导致事件冒泡触发两次,可以尝试:
<map @markertap.stop="handleMarkerTap"></map>
-
检查自定义组件: 如果是自定义map组件,确保没有在子组件和父组件中都绑定了事件。
-
Vue3特性问题: Vue3中部分事件系统有变化,可以尝试改用
v-on
的显式写法:
<map v-on:markertap="handleMarkerTap"></map>