问题引出
公司做的是电瓶车换电项目,所已涉及用到地图展示线下换电点位,由于点位过多一次性请求出来性能非常大,对用户体验也不好,所有用到了@regionchange来实现根据当前位置返回附近几公里范围的点位,但是问题就出现在小程序首次刷新的时候会出现@regionchange连续执行4此的问题(地图没有拖动的情况下)直接看图👇
分析原因:
我费了九牛二虎之力才发现出现这个问题是因为我动态的设置了map地图组件必填的latitude和longitude
当你的map组件动态设置了这两个值后就会出现@regionchange在小程序刚加载没拖动地图的情况下出现连续执行的情况
解决办法:
官方文档没有给出相对应的解决办法,我想到的一个笨办法就是用当前经纬度与map组件的方法
getCenterLocation获取地图中心点经纬度相减如果你首次进入首页没有移动地图你最后减到的值会是0,这时候我们就可以根据0对@regionchange的连续执行进行拦截