见bug描述

- 发布:2020-09-17 17:53
- 更新:2020-09-29 22:59
- 阅读:829
产品分类: HbuilderX
PC开发环境操作系统: Windows
PC开发环境操作系统版本号: win10
HBuilderX版本号: 2.8.11
操作步骤:
预期结果:
应该正常使用
应该正常使用
实际结果:
非正常使用
非正常使用
bug描述:
nvue界面用:show.sync="showPopup4"来控制子组件popup进行展示与关闭,子组件中使用watch来监控show属性,第一改变showPopup4的值,子组件的watch中可以监控到变化,切换到别的界面再切换回这个界面,再触发showPopup4值变化,子组件的watch没有任何反应(handle函数不触发)
5 个回复
a***@126.com (作者) - 宝藏地图
补充说明:
1、子组件是一个uni-popup,通过父组件传show属性,在watch中控制this.$refs.popup.open();和this.$refs.popup.close();
2、第一次改变showPopup4值从false -> true,此时子组件正常弹出,uni-popup上有按钮关闭,点击时触发this.$emit('update:show', false);,此时父组件的showPopup4值从true -> false,uni-popup也正常关闭。
3、这时点开别的页面再回到当前页面(这里很重要,如果一直保持在当前界面是没问题的),第二次改变showPopup4值从false -> true,这时候子组件的watch中监控不到这个值有变化,但是实际上是从false变为了true的。
4、HBuildX2.7.14.20200618之前都是正常的,升级后就不行了,相同的代码
a***@126.com (作者) - 宝藏地图
有人帮忙看下么?
a***@126.com (作者) - 宝藏地图
很急
a***@126.com (作者) - 宝藏地图
可以提供源码工程
chenli
可以换一种方式实现,父组件ref来操作子组件方法,做两个方法open,close;这两个就是操作开始关闭。这样应该就不会有问题。
a***@126.com (作者)
这个方法也试过的,也还是不行...
2020-10-05 11:12
chenli
回复 a***@126.com: 可以尝试写简单示例,看是否可以复现,可复现提供示例工程方便他人排查问题
2020-10-09 10:15
a***@126.com (作者)
回复 chenli: 根据我的问题排查,我发现是切换到别的界面后,nvue界面的子组件似乎是被销毁了,我用v-if控制子组件,离开页面设置成false,进入页面设置成true,暂时解决了这个问题,但是你们可能还是得跟一下这个问题,之前版本都是好的
2020-10-09 11:10