WbsPool
WbsPool
  • 发布:2020-03-25 01:14
  • 更新:2020-03-27 11:10
  • 阅读:1415

【报Bug】V3编译模式,v-if切换导致多层嵌套this.$emit事件传递失效

分类:uni-app

详细问题描述

因为看到官方公告说4月1号起就强制使用V3编译模式,今天测试一下V3编译模式。发现启用v3编译模式之后(普通模式正常),当使用v-if标签作为tab切换组件实现的方式时,在进行切换后,组件中嵌套子组件的$emit事件传递就失效了。比如我有A, B,C三个组件,A中嵌套B,B中嵌套C。在C中监听一个点击事件,通过this.$emit(‘event')这个方法向上传递事件,当v-if未变化之前,事件是传递成功的。当v-if切换变换,再变换回来。在B中监听C传递的事件就传递不了,具体可以看一下示例工程,重现步骤可以看附件中的演示视频。

示例工程中,具体的事件传递如下:

CommTrendItem ----(this.$emit('collect'))--> LdwTrendList

在v-if状态未变化之前,CommTrendItem组件能成功将“collect”事件传递到LdwTrendList组件,在v-if由true->false->true之后,CommTrendItem组件就传递不了“collect”事件传递到LdwTrendList组件了。

[内容]

重现步骤

[步骤]
见示例工程和演示视频

[结果]
见示例工程和演示视频

[期望]

见示例工程和演示视频

IDE运行环境说明

[HBuilder 或 HBuilderX。如果你用其他工具开发uni-app,也需要在此说明]
2.6.6 和 2.6.5两个版本都出现同样的问题

[IDE版本号]

[windows版本号]
window 10
[mac版本号]

uni-app运行环境说明

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

[运行端版本号]

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

[编译模式说明:自定义组件模式?纯nvue模式?v3模式?]

App运行环境说明

[Android版本号]
6.0

[iOS版本号]
13.3

[手机型号]
iphoneXR 和 努比亚 Z11
[模拟器型号]

附件

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

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

[App安装包或H5地址]

[可重现代码片段]

联系方式

[QQ] 125382749

2020-03-25 01:14 负责人:无 分享
已邀请:
DCloud_UNI_FXY

DCloud_UNI_FXY

2.6.7alpha版本已修复

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