小程序
小游戏
企业微信
微信支付
扫描小程序码分享
一拖动地图,整个地图都会抖动,ios是正常的,这是怎么回事?bug吗?
3 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
要注意一下bindregionchange的事件入参,里面有这两个字段:
type/causedBy
需要根据这两个字段来做数据的更新:
type一般有begin和end,一般在end中更新数据
还有就是causedBy这个,就是用来标记是什么导致的地图视图更新有drag/scale/update,前两个好理解,这个是用户行为,最后一个是绑定的数据变更导致的。
导致发生抖动的原因很可能是只对,type做了判断,未对causedBy做判断:
regionChange(e) { if (e.type === end) { // 未对causedBy进行判断,导致在对数据改变时,触发了update类型的改变,于是update又触发了regionChange,如此一直循环下去,所以发生了抖动 // 解决方法就是对causedBy进行判断,只要causedBy !== 'update'即可放行修改数据,这就不会造成事件反复触发的抖动了。 this.setData({ center: {lat: 30, lon: 30} }) } }
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
解决了吗?
请问解决了吗?我也遇到这个问题了
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
要注意一下bindregionchange的事件入参,里面有这两个字段:
type/causedBy
需要根据这两个字段来做数据的更新:
type一般有begin和end,一般在end中更新数据
还有就是causedBy这个,就是用来标记是什么导致的地图视图更新有drag/scale/update,前两个好理解,这个是用户行为,最后一个是绑定的数据变更导致的。
导致发生抖动的原因很可能是只对,type做了判断,未对causedBy做判断:
regionChange(e) { if (e.type === end) { // 未对causedBy进行判断,导致在对数据改变时,触发了update类型的改变,于是update又触发了regionChange,如此一直循环下去,所以发生了抖动 // 解决方法就是对causedBy进行判断,只要causedBy !== 'update'即可放行修改数据,这就不会造成事件反复触发的抖动了。 this.setData({ center: {lat: 30, lon: 30} }) } }
解决了吗?
请问解决了吗?我也遇到这个问题了