问题是这样的,小程序用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!不管黑猫白猫,能抓住老鼠就是好猫!
历史上的今天:
展开阅读全文
上一篇: 什么是HDC2020、Huawei LiteOS、HMS、HarmonyOS、鸿蒙?
下一篇:原来清华校园就在圆明园旁边