详细问题描述
因为看到官方公告说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