使用 'react-leaflet' 新 useLeaflet() 挂钩的示例?
An example of using the 'react-leaflet' new useLeaflet() hook?
我正在尝试使用挂钩获取对传单对象的引用,以便我可以查询不同事件(如 Map.getBoundaries())的新地图边界。我是 reac-leaflet
的新手,这种方法可能是完全错误的,但这就是我现在得到的...
我想做的是获取每个 moveend
事件的地图边界,如果这有帮助的话...
处理程序:
const onMoveEnd = (event) => {
const bounds = event.target.getBounds()
console.log(bounds)
}
// _northEast: LatLng {lat: 47.51470804161579, lng: 19.071493148803714}
// _southWest: ...
组件:
<Map onmoveend={onMoveEnd}></Map>
首先,您只能在 Map 元素内的组件中使用挂钩:
<Map>
<YourComponent />
</Map
然后在您的组件中,您可以执行以下操作:
const YourComponent = () => {
const { map } = useLeaflet();
const [bounds, setBounds] = React.useState({});
React.useEffect(() => {
const eventHandler = event => {
setBounds(event.target.getBounds());
doSomethingElse();
}
map.on("moveend", eventHandler);
return () => {
map.off("moveend", eventHandler); // Remove event handler to avoid creating multiple handlers
}
}, [setBounds, map]);
return {
// Use bounds for whatever you need
<div>Lat: {bounds.lat}; long: {bounds.lng}</div>
}
}
我正在尝试使用挂钩获取对传单对象的引用,以便我可以查询不同事件(如 Map.getBoundaries())的新地图边界。我是 reac-leaflet
的新手,这种方法可能是完全错误的,但这就是我现在得到的...
我想做的是获取每个 moveend
事件的地图边界,如果这有帮助的话...
处理程序:
const onMoveEnd = (event) => {
const bounds = event.target.getBounds()
console.log(bounds)
}
// _northEast: LatLng {lat: 47.51470804161579, lng: 19.071493148803714}
// _southWest: ...
组件:
<Map onmoveend={onMoveEnd}></Map>
首先,您只能在 Map 元素内的组件中使用挂钩:
<Map>
<YourComponent />
</Map
然后在您的组件中,您可以执行以下操作:
const YourComponent = () => {
const { map } = useLeaflet();
const [bounds, setBounds] = React.useState({});
React.useEffect(() => {
const eventHandler = event => {
setBounds(event.target.getBounds());
doSomethingElse();
}
map.on("moveend", eventHandler);
return () => {
map.off("moveend", eventHandler); // Remove event handler to avoid creating multiple handlers
}
}, [setBounds, map]);
return {
// Use bounds for whatever you need
<div>Lat: {bounds.lat}; long: {bounds.lng}</div>
}
}