复现方法:
1、做一个组件 A ,A emit("click")
2、做一个页面 ,在其中 用 v-if 使用组件A ,比如 <A v-if="condition" @click="myclick" />
3、首次进入页面时,点击A ,myclick 事件会被触发,当v-if == false ,组件被隐藏,然后 v-if == true 组件再显现时,myclick 事件就无法触发了。
4、一定要用 自定义组件 A ,如果一次切换v-if 状态 不能复现,反复切换 vif 状态几次,问题必定会重现。
5、如果用 uniapp 内置组件 view 绑定 click ,就没有这个问题
6、可能原因分析:v-if == false 时,组件被销毁。当 v-if == true 组件再次被创建时,@ 要绑定的事件,没有被正确绑上,所以就出现点击无效。不仅仅是 click 无效,所有绑定在该组件上的事件响应函数,全部无效。
7 个回复
DCloud_UNI_Anne
HBuilderX3.6.8-alpha已修复
DCloud_UNI_Anne
未复现此问题,请提供简单可复现示例(上传附件)方便排查,谢谢 【bug优先处理规则】https://ask.dcloud.net.cn/article/38139
EJRUN以界 (作者)
你好,附件中 有 bug 复现的 演示 工程。请查看。谢谢。
DCloud_UNI_Anne
没看到附件呢
2022-10-18 11:02
EJRUN以界 (作者)
回复 DCloud_UNI_Anne: 重新传了一次,请查看。
2022-10-18 11:07
EJRUN以界 (作者)
我再传一次试试
DCloud_UNI_Anne
Android 11 Redmi K40 ,未复现问题,请简单代码提供最小可复现示例(上传附件)
2022-10-18 15:28
EJRUN以界 (作者)
回复 DCloud_UNI_Anne:你好,明天我们换另外一个安卓机试试,如果能够复现,录个视频上传。
2022-10-18 23:10
EJRUN以界 (作者)
回复 DCloud_UNI_Anne: 你好,刚用 Redmi Note 10 ,Android 11 ,MIUI 12.0.8 测试,可以稳定重现bug。
2022-10-18 23:25
DCloud_UNI_Anne
回复 EJRUN以界: 复现此问题,这边相关人员排查下 ,已加分感谢您的反馈!
2022-10-19 15:03
EJRUN以界 (作者)
还是原来附件中的 代码 。 请运行到 Android 真机后,按 图片 中 提示的 1、2、3 步顺序进行操作看看。谢谢。
EJRUN以界 (作者)
早上起来,把 bug_demo 简化到 只有 2个函数,几行代码。请查看附件中 bug_demo2 。
DCloud_UNI_GSQ
经排查,销毁App端根节点会导致此问题,后续将会修复
临时解决办法:增加一层节点