Uniapp开发微信小程序的坑
起因是我们公司最近在做一个新的小程序。
这个小程序,是由外协的同事负责开发的,他们使用的是 Uniapp 框架,而非原生的微信小程序开发框架。
其中有部分功能,可以沿用我们之前的小程序代码。于是就将这部分代码拷贝了出来,给了外协的同事。
我们之前的小程序,是使用原生的微信小程序开发框架,而他们使用的是 Uniapp 开发框架,这样一来,代码肯定会有些差异。
不过倒也还好,差异不是很大,一开始,他们接入的也挺顺利。
但是后面有个功能一直不行,然后发现是下面这一段代码的问题。
1 | //获取所有页面 |
一直报 reloadPage 不是一个方法,也就是说这个方法不存在。
当时看不出啥问题,只能一点一点对比代码,还是没发现什么不对。上一个页面中,也确实是存在 reloadPage 这个方法的。
我也没用过 Uniapp 开发小程序,但是看他们的代码,好像确实没什么问题。
一晚上都没解决。
第二天来上班时,我突然灵光一闪,难道 Uniapp 不能像原生框架一样,直接调用某个小程序页面的方法?
我就去网上搜了一下 Uniapp 框架开发小程序时,如何调用别的页面的方法。结果一搜,发现还真的不一样!
这才是 Uniapp 中正确的写法!
1 | //获取所有页面 |
前两步都是一样的,但是调用页面方法的时候,原生框架是直接 页面.方法,而 Uniapp 则是 页面.$ref.方法。
坑啊!
后面让外协的同事修改了一下代码,果然可以了。