微信小程序开发过程中遇到的一些坑
本篇文章旨在帮助曾和我遇到相同问题的同志解决bug。如有不恰当的地方欢迎指出。
一、微信小程序map组件,关于bindregionchange对应的函数无限循环调用的bug
原因
map组件中bindregionchange是根据视图层的经纬度的改变而触发的,如果你在bindregionchange对应函数中使用了
setData来渲染视图层的话,就会导致bindregionchange对应函数的无限循环调用,从而使得程序崩溃。
解决方法
不要在bindregionchange对应函数中使用setData渲染map组件的经纬度。
二、微信小程序页面加载的异步问题,app.js没有执行完就执行了主页面中的js代码
原因
微信小程序页面加载顺序是,先执行app.js,再执行主页面的js,但是这里存在一个异步的问题。js是单线程语言,是一句一句地执行的,但当你有类似网络请求等异步操作时,他不会一直停在那边等着返回结果,而是继续一行行代码执行下去,直到网络请求返回结果,再执行回调函数。
解决方法
相关文章
三、微信小程序picker的级联菜单显示“object”
<picker value="{{depindex}}" range="{{dep}}" bindchange="bindPickerChange0">
<view class="weui-input">{{dep[depindex]}}</view>
</picker>
原因
picker对应的数组只能是字符串数组(如上图中dep数组是字符串的数组)。如果显示“object”,说明picker的数组不是一个字符串数组,而是一个复合的对象数组。
解决方法
如果需要合适的级联菜单可参考另一个博主的博文