2***@qq.com
2***@qq.com
  • 发布:2020-04-17 15:37
  • 更新:2020-04-20 15:42
  • 阅读:905

【报Bug】v3编译器下,自定义组件的watch有问题

分类:uni-app

详细问题描述

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

[内容]

附件里的工程使用了一个imagecutter的组件,该组件在非v3环境下编译使用正常,改成v3编译器则出现白屏的现象,经过仔细查找,发现自定义组件里有一个watch的属性在v3编译器下没有被触发
watch: {
// ===============================================================================
// ===============================================================================
// 这里v3编译器没有触发这个方法,导致组件不能初始化
// ===============================================================================
// ===============================================================================
src(val) {
console.log(val);
if (val.length > 0) {
this.init();
}
},
show(val) {
if (!val) {
// this.src = ''
}
}
},

[步骤]
v3编译器下,点击测试图片,白屏
[结果]
白屏
[期望]
与非v3编译器相同
[如果语言难以表述清晰,拍一个视频或截图,有图有真相]

IDE运行环境说明

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

uni-app运行环境说明

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

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

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

App运行环境说明

[Android版本号]

[iOS版本号]

[手机型号]

[模拟器型号]

附件

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

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

[App安装包或H5地址]

[可重现代码片段]

联系方式

[QQ]2836478

2020-04-17 15:37 负责人:无 分享
已邀请:
9***@qq.com

9***@qq.com - 前端工程师

组件是否应该用created呢,onLoad主要是针对页面的吧

2***@qq.com

2***@qq.com (作者)

我找到原因了,v3编译器下,onLoad里对src赋值,没有产生watch触发,非v3里就可以,看来是v3编译器对onLoad里代码的处理逻辑与以前可能稍微有些不同了,折中的办法是setTimeout把赋值代码放到回调里

DCloud_uniCloud_WYQ

DCloud_uniCloud_WYQ

普通的vue页面就应该是这种表现,可以在watch里面使用immdiate: true

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