最近在做小程序的时候,发现一个神奇的问题,在开发的时候点击事件是没有问题,预览也是没有问题(基础库是1.4.0),当上传之后,体验版发现点击事件无效,报错Do not have xx handler in current page,如下图所示,(”pages/component/useredit/useredit“报错)
但是奇怪的是,在手机上预览(开发版)和工具上都没有问题,上传到体验版就有问题。函数明明已经在page()里面注册好的,为什么会Do not have xx handler?百思不得其解,各种都检查测试,还是一样。
最后网上搜索,有人也遇到过这个问题,说是把pages[]注册页面顺序调一调。
首先自己的pages是
前面四个是tabbar,useredit和editname是在personal里面的跳转。然后调整为如下所示:
最后发现还是一样报错,甚至连detail页面都不显示了,personal的事件也报错了Do not have xx handler in current page。
一度以为调整顺序无用。不知道什么原因,后来想想,是不是因为我们有用第三方平台自定义的数据字段,在小程序根目录配置有ext.json自定义字段。这样后台配置有一个pages,是否要跟app.json的页面顺序要一致呢?那就叫后台改改,把这个顺序调整为跟app.json的顺序一致,果然跟pages注册页面顺序有关,马上可以了。也就是说,app.json修改了顺序,后台程序要保持跟app.json的顺序一致就可以了。
到此,终于搞定,在此简单记录一下。但是,最后还有一个疑问,为什么预览和工具上就没有问题呢?