我正在使用以下代码片段尝试使用mapbox-gl v0.50.0从uber react-map-gl: 4.0.2访问MapBox应用程序接口。
import MapGL from 'react-map-gl';
export default class App extends Component
{
constructor(props) {
super(props);
this.mapRef= React.createRef();
}
componentDidMount()
{
let data = this.mapRef.getMap().getBounds(); <----
}
render() {
<MapGL
{...viewport}
width="100%"
height="100%"
mapStyle={MapStyle}
onViewportChange={this._updateViewport}
ref={map => this.mapRef = map}
mapboxApiAccessToken={TOKEN} >
}
}如果我尝试访问任何其他方法,如getStyle/getSource和其他方法,则会出现错误“不是函数”&“无法读取未定义的属性‘版本’”。我做错了什么吗?或者不是所有的MapBox Api方法都可以通过getMap()方法使用?
谢谢
发布于 2018-12-08 08:04:31
如果您可以正确获取map对象,那么包括getStyle在内的所有函数都应该被公开。getSource对我也不起作用,可能是使用mapStyle不算源代码吧?不确定最后这一点。
发布于 2018-12-09 00:48:31
我用它来获得初始的地图边界。
getMapBoundaries = () => {
// Get map boundaries
const myMap = this.mapRef.getMap();
console.log(myMap.getBounds());
const mapBoundaries = myMap.getBounds();
this.setState({ mapBoundaries })
}
componentDidMount = () => this.getMapBoundaries();我还注意到'react-map-gl‘的导入应该是
import ReactMapGL from 'react-map-gl';为什么会出现这个错误?您似乎没有在componentDidMount方法中使用返回函数。
https://stackoverflow.com/questions/53442394
复制相似问题