MX_2019
MX_2019
  • 发布:2019-07-31 11:05
  • 更新:2021-06-18 22:28
  • 阅读:2717

【报Bug】头条小程序上自定义组件的provide/inject功能、slotScopes功能无法正常使用

分类:uni-app

详细问题描述

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

[内容]

重现步骤

新建两个自定义组件comp1和comp2,comp2是comp1的子组件,在comp1 provide一个值 ,在comp2 inject,将会发生报错,我排查了一下原因,应该是因为头条小程序的自定义组件跟微信的自定义组件的生命周期执行机制有关系
在头条小程序上面 comp2的attached会比comp1的attached执行得更早,而uni-app的运行机制是在attached里面初始化vue实例,因此造成错误

[步骤]

[结果]

[期望]

[如果语言难以表述清晰,拍一个视频或截图,有图有真相]

IDE运行环境说明

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

[IDE版本号]

[windows版本号]

[mac版本号]

uni-app运行环境说明

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

[运行端版本号]

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

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

App运行环境说明

[Android版本号]

[iOS版本号]

[手机型号]

[模拟器型号]

附件

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

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

[App安装包或H5地址]

[可重现代码片段]

联系方式

[QQ]

2019-07-31 11:05 负责人:无 分享
已邀请:
2***@qq.com

2***@qq.com - 吃多了

亲测支付宝 头条上provide/inject 不可用

5***@qq.com

5***@qq.com

有解决方案吗

语文数学天才

语文数学天才 - 做最顺手的nvue组件库与工具集

亲测,iOS真机偶尔可以,偶尔不可以。安卓可以。头条小程序上面

DCloud_UNI_GSQ

DCloud_UNI_GSQ

由于底层限制(异步通迅),无法及时设置组件关系,初始化 provide/inject 较晚,可以在 created 或者更迟的生命进行访问。在 computed 中使用时,请加入判断,如:created () {this.isCreated = true},computed: {value () {return this.isCreated ? this.injectData.xxx : ''}}。

DCloud_UNI_GSQ

DCloud_UNI_GSQ

另外关于 slotScopes ,可以更新后再试试

2***@qq.com

2***@qq.com - 终于

我也遇到这个问题,最后怎么解决啊

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