a***@126.com
a***@126.com
  • 发布:2020-09-17 17:53
  • 更新:2020-09-29 22:59
  • 阅读:829

【报Bug】自从HBuildX2.7.14.20200618版本后,vue的:show.sync语法出现问题

分类:HBuilderX

产品分类: HbuilderX

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: win10

HBuilderX版本号: 2.8.11

操作步骤:

见bug描述

预期结果:

应该正常使用

实际结果:

非正常使用

bug描述:

nvue界面用:show.sync="showPopup4"来控制子组件popup进行展示与关闭,子组件中使用watch来监控show属性,第一改变showPopup4的值,子组件的watch中可以监控到变化,切换到别的界面再切换回这个界面,再触发showPopup4值变化,子组件的watch没有任何反应(handle函数不触发)

2020-09-17 17:53 负责人:jxtian 分享
已邀请:
a***@126.com

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

a***@126.com (作者) - 宝藏地图

很急

a***@126.com

a***@126.com (作者) - 宝藏地图

可以提供源码工程

chenli

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

该问题目前已经被锁定, 无法添加新回复