Javascript 如何在React Mapbox GL中获取当前缩放?
如何在react mapbox gl中获取地图的当前缩放 包装: 我尝试了一个例子,从“如何开始”到在Javascript 如何在React Mapbox GL中获取当前缩放?,javascript,reactjs,zooming,mapbox,Javascript,Reactjs,Zooming,Mapbox,如何在react mapbox gl中获取地图的当前缩放 包装: 我尝试了一个例子,从“如何开始”到在Map上使用getZoom方法,但它不起作用。我有一个错误,Map.getZoom不是一个函数 编辑================ 当我试图通过裁判访问它时,我遇到了屏幕截图上的问题。如何获取具有getZoom功能的.state.map.e? 您正在使用的Map是一个ReactMapboxGl对象,它是mapbox gl js的包装器。您想调用mapboxgl.Map对象 要使用原始Mapbo
Map
上使用getZoom
方法,但它不起作用。我有一个错误,Map.getZoom不是一个函数
编辑================
当我试图通过裁判访问它时,我遇到了屏幕截图上的问题。如何获取具有getZoom功能的.state.map.e?
您正在使用的
Map
是一个ReactMapboxGl
对象,它是mapbox gl js的包装器。您想调用mapboxgl.Map
对象
要使用原始Mapbox API useonStyleLoad
属性,回调函数将接收map对象作为第一个参数,然后您可以在react Mapbox gl旁边添加自己的逻辑
因此,您可以通过以下方式获得:
<ReactMapboxGl onStyleLoad={ el => this.map = el } />
如果我渲染该组件而不是导出它会怎么样?@skylnr我不确定您想做什么,但有一个“onZoom”事件,您可以收听,以跟踪缩放更改。当我像您所展示的那样执行时,我会收到“this.map.getZoom不是一个函数。当我控制台记录this.map时,我收到了整个ReactMapboxGl对象,在那里我看到了.state.map.e,但当我尝试访问它时,它是未定义的,我已经使用map组件的onRender函数完成了。在那里,我得到缩放并将其设置为组件状态。但我不确定这是否是一个好的解决方案。但它是有效的:D@SkylinR很高兴知道它有效!我刚刚在API文档中看到,他们实际上使用
onStyleLoad
来获取map对象。我已经相应地更新了答案。
componentDidMount() {
const currentZoom = this.map.getZoom();
}