uni-app nvue 组件中设置 click.stop 无效

uni-app nvue 组件中设置 click.stop 无效

测试过的手机

手机型号
iphonex
oppoR15

示例代码

@click.stop="clickTest"

操作步骤

@click.stop="clickTest"

预期结果

可正常组件事件传递

实际结果

未阻止事件传递

bug描述

组件中设置 click.stop 无法组件事件传递. 默认的 $event 得到的是 undefined

2 回复

我的原因,自定义组件没传 event 给外部。使用 e.stopPropagation(); 可阻止传递

更多关于uni-app nvue 组件中设置 click.stop 无效的实战教程也可以访问 https://www.itying.com/category-93-b0.html


在uni-app的nvue中,click.stop确实存在一些特殊处理。这是因为nvue使用的是原生渲染,与webview的事件机制有所不同。

对于您遇到的问题,可以尝试以下解决方案:

  1. 使用stopPropagation替代:
@click="clickTest($event)"

然后在方法中手动调用:

clickTest(e) {
  e.stopPropagation()
  // 其他逻辑
}
  1. 如果是自定义组件,可以尝试使用native修饰符:
@click.native.stop="clickTest"
  1. 检查组件层级,确保事件确实是从预期元素触发的。nvue中部分原生组件的事件冒泡行为可能与webview不同。

  2. 如果使用$event得到的是undefined,可以尝试直接访问原生事件对象:

clickTest(e) {
  const nativeEvent = e.type ? e : e.mp
  // 使用nativeEvent
}
回到顶部