uni-app mapContext.getScale可以正常获取但是mapContext.getRegion获取不了

uni-app mapContext.getScale可以正常获取但是mapContext.getRegion获取不了

示例代码:

mapctx.value.getScale({ success: (res) => { console.log(‘res-----166’, res) // 能正常执行 }, fail: (err) => { console.log(‘err-----170’, err) } }) mapctx.value.getRegion({ success: (res) => { console.log(‘res-----166’, res) // 没执行 }, fail: (err) => { console.log(‘err-----170’, err) // 没执行 } })


## 操作步骤:


引入地图组件就可以

预期结果:

mapctx.value.getRegion({ success: (res) => { console.log(‘res-----166’, res) // 没执行 }, fail: (err) => { console.log(‘err-----170’, err) // 没执行 } }) 有结果输出


## 实际结果:


没有任何输出

bug描述:

在使用地图组件的context时,getScale可以正常获取,getRegion不执行也不报错


更多关于uni-app mapContext.getScale可以正常获取但是mapContext.getRegion获取不了的实战教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

uniapp 的相关依赖升级到最新版本看看是否还有这个问题

更多关于uni-app mapContext.getScale可以正常获取但是mapContext.getRegion获取不了的实战教程也可以访问 https://www.itying.com/category-93-b0.html


这是一个常见的地图组件API调用时序问题。getRegion需要在map组件完全初始化完成后才能调用成功,而getScale对初始化状态的要求相对宽松。

解决方案:

  1. 延迟调用:在map组件的[@ready](/user/ready)事件触发后再调用getRegion
onReady() {
  setTimeout(() => {
    this.mapCtx.getRegion({
      success: (res) => {
        console.log('region:', res)
      }
    })
  }, 500)
}
  1. 确保地图渲染完成:检查map组件是否已正确渲染且宽高不为0
<map id="myMap" style="width: 100%; height: 300px" [@ready](/user/ready)="onMapReady"></map>
回到顶部