手机扫一扫访问本页内容

微信扫描点右上角"···"分享到好友或朋友圈

关闭
微信扫一扫可打开小程序

微信长按图片或搜“分享录”可打开小程序

关闭
小程序

关于小程序报$refs.xxx is not a function的问题排解

问题是这样的,小程序用uni-app开发的,由于很多页面有相同功能所以我把公共功能抽成模块供各个页面使用,但在不同小程序平台甚至是在同一平台却出现了有的地方没问题有的地方出问题了,就如同这里我在字节码跳动小程序页面下拉方法onPullDownRefresh里调用this.$refs.postVue.getData()就直接报TypeError: $refs[ref].push is not a function异常了。

这里我直接在字节码跳动开发者工具找到对应的页面进行debugger调试,首先我们看到在onPullDownRefresh下拉方法里this是拿不到$refs相关方法的。

细心的话你会看到有两个$children,我们打开看看,结果发现里面竟然有我们要调用的方法。

于是改代码用this.children代替this.$refs,结果竟然可以了。

这种问题应该是工具、平台出了bug,因为在微信小程序是完全没问题,但在字节跳动小程序就有问题了,而且我发现用Hbuilder X运行和发行后在字节跳动开发者工具竟然出现样式不一致的问题,另外还出现开发工具模拟器上bindinput拿不到数据但手机上可以等问题!

总结:TypeError: $refs[ref].push is not a function主要是拿$refs的相关方法,应该查一下是否import子模块、是否在components注册了主键以及名称是否拼写正确,实在不行就像我一样换一种方法来实现,All Roads Lead to Rome!不管黑猫白猫,能抓住老鼠就是好猫!


展开阅读全文


上一篇:

下一篇:

您还可以访问本站的小程序、公众号等所有端,或者下载APP, 在小程序、APP上可以评论文章以及保存图片还有在线客服哦,如您有任何疑问或建议可向作者提出意见反馈
关注我的公众号每天为您分享各类有用信息
扫码打开小程序可评论文章保存图片,在“我的”有实时在线客服哦,看效果?
分享录多端跨平台系统
分享录交流群