z***@163.com
z***@163.com
  • 发布:2020-03-18 12:43
  • 更新:2020-03-20 09:43
  • 阅读:1207

【报Bug】V3编译父组件中引入子组件,通过if控制显示隐藏,子组件方法无法控制渲染视图

分类:uni-app

详细问题描述

(DCloud产品不会有明显的bug,所以你遇到的问题大都是在特定环境下才能重现的问题,请仔细描述你的环境和重现方式,否则DCloud很难排查解决你的问题)

[内容]

父组件中引入子组件 通过父组件控制子组件if显示和隐藏一次后 子组件中自己的方法 将失效 无法渲染视图
[步骤]

  1. 定义一个子组件 在子组件上布局 定义点击按钮就更改自己身上的文本内容 文本内容绑定到data 通过click更改

2.在父组件引入这个子组件,此时子组件的功能应该是:'点击身上的按钮改变自己身上的文本内容'

  1. 在父组件上定义一个按钮 控制子组件的显示和隐藏 用if else控制子组件显示和隐藏

  2. 父组件中点击第一次显示子组件的时候 子组件可以正常进行运行 子组件按钮能够自己修改自己的文本内容

  3. 第二次父组件按钮控制子组件显示和隐藏一次 当第二次子组件显示的时候 子组件身上的按钮将无法更改自己身上的文本内容 但是JS已经执行了 也就是data已经改变了 但是视图层没有更新

  4. pc没有这个问题 这个问题只在app上出现
    [结果]
    子组件data和方法都改变了 但是没有更新视图
    [期望]
    期望 通过点击父组件控制子组件 if和else显示和隐藏 子组件不管if else多少次 都能够正常执行自己的方法和渲染视图
    [如果语言难以表述清晰,拍一个视频或截图,有图有真相]

IDE运行环境说明

[HBuilder 或 HBuilderX。如果你用其他工具开发uni-app,也需要在此说明]
工具 HBuilderX
[IDE版本号]

[windows版本号]
win7
[mac版本号]

uni-app运行环境说明

[运行端是h5或app或某个小程序?]
app
[运行端版本号]

[项目是cli创建的还是HBuilderX创建的?如果是cli创建的,请更新到最新版cli再试]

[编译模式是老模板模式还是新的自定义组件模式?]

App运行环境说明

[Android版本号]
安卓9
[iOS版本号]
[手机型号]
红米not7
[模拟器型号]

附件

[IDE问题请提供HBuilderX运行日志。菜单帮助-查看运行日志,点右键打开文件所在目录,将log文件压缩成zip包上传]

[App问题请提供可重现问题的代码片段,你补充的细一点,问题就解决的快一点]

[App安装包或H5地址]

[可重现代码片段]

联系方式

[QQ]524299183

2020-03-18 12:43 负责人:无 分享
已邀请:
DCloud_UNI_FXY

DCloud_UNI_FXY

建议发一个demo测试工程,步骤太过复杂,不好完整重现你的现象

  • z***@163.com (作者)

    你好 已经上传一个测试demo,请留意看一下。 我主要问题就是,点击隐藏和显示子组件后,子组件经过显示和隐藏后,子组件没办法改变自己的视图了


    2020-03-18 13:39

  • z***@163.com (作者)

    编译器版本 2.6.5 V3模式


    2020-03-18 14:07

  • z***@163.com (作者)

    最新的HBuilderX有这个问题 2.6.1版本没这个问题 2.6.5有问题


    2020-03-18 14:15

  • DCloud_UNI_FXY

    回复 z***@163.com: 2.6.6Alpha会修复此问题


    2020-03-18 20:53

v***@qq.com

v***@qq.com - 蓝牙

补充下 ,似乎这个问题,也是同相似问题,希望能同步修复。

https://ask.dcloud.net.cn/question/91220

  • DCloud_UNI_FXY

    类似问题,2.6.6Alpha会修复此问题


    2020-03-19 11:17

DCloud_uniAD_HDX

DCloud_uniAD_HDX

HBuilderX 2.6.6+ 已修复

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