微信小程序开发过程中遇到的一些坑

微信小程序开发过程中遇到的一些坑

本篇文章旨在帮助曾和我遇到相同问题的同志解决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的数组不是一个字符串数组,而是一个复合的对象数组。

解决方法

如果需要合适的级联菜单可参考另一个博主的博文