前提场景:
在使用map组件时,经纬度属性(latitude,longitude)使用数据绑定,在onLoad里获取用户的地理位置,然后再setData,这时往往map组件拿不到获取的值。
原因:
map组件的组件渲染是优先于接口setData的异步赋值的,导致map的渲染过程中实际上longitude和latitude值都为空,且map只渲染一次。
解决方式:
使用wx:if
<map longitude='{{longitude}}' latitude='{{latitude}}' wx:if="{{showMap}}"/>
初始化showMap为false,接口赋值latitude和longitude之后将showMap赋值true,渲染map!