当前位置:   article > 正文

uniapp打包字节抖音小程序使用$refs报错解决办法_uniapp 抖音小程序

uniapp 抖音小程序

最近在做uniapp打包小程序的时候,发现uniapp打包抖音小程序后,组件使用的ref定义后,在this.$refs中都获取不到组件的实例(这里用开发者工具是没问题的,需要在真机调试),于是乎就开始了各种搜索,找解决方案。
1、首先是查的抖音小程序的官网生命周期顺序

上图是抖音官网的组件加载顺序生命周期图。
按照上图,我把所有卸载onLoad方法中的相应数据都放到了onReady中,然后真机测试依然是无法拿到组件的实例获取的依然是undefined。
于是乎想到是不是可以加上了this.$nextTick在这个方法里边获取,经过一番测试还是不行。

然后就去uniapp官网查找,最后查到了这个解决方案:

https://github.com/dcloudio/uni-app/pull/4555

问题描述
抖音 App 版本为 27.2.0 的抖音小程序,v-if 判断的 ref 组件,无法通过 this.$refs 拿到组件实例,如果是抖音App 27.1.0 版本的话,是正常的。

补充信息

经过排查,发现因为抖音App 27.2.0 版本的 SDKVersion 为 3.0.0,在 initRefs 方法中,对 selectAllComponents API 做了一个兼容处理:

1、如果使用的是HBuilder工具开发直接升级工具为最新版就可以。
2、如果使用的是命令行cli进行开发的话,需要更改一下uniapp打包抖音的插件

我们需要找到如下目录
node_modules\@dcloudio\uni-mp-toutiao\dist\index.js

找到上边的位置把它替换成下边的样子

  1.     const [majorVersion , minorVersion] = tt.getSystemInfoSync().SDKVersion.split('.');
  2.       if (majorVersion > 1 || minorVersion > 16) {



这样在进行打包就可以正常使用了。
 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/640889
推荐阅读