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的事件机制有所不同。
对于您遇到的问题,可以尝试以下解决方案:
- 使用
stopPropagation
替代:
@click="clickTest($event)"
然后在方法中手动调用:
clickTest(e) {
e.stopPropagation()
// 其他逻辑
}
- 如果是自定义组件,可以尝试使用
native
修饰符:
@click.native.stop="clickTest"
-
检查组件层级,确保事件确实是从预期元素触发的。nvue中部分原生组件的事件冒泡行为可能与webview不同。
-
如果使用
$event
得到的是undefined,可以尝试直接访问原生事件对象:
clickTest(e) {
const nativeEvent = e.type ? e : e.mp
// 使用nativeEvent
}