javascript - react-leaflet v3 缩放监听器
问题描述
我正在尝试订阅缩放更改事件,但无法获取每次缩放更改的更新。
我的目标是达到缩放级别的标记。在这种情况下类似React-Leaflet: 缩放标记后缩放
但是 v3 中的 react-leaflet 没有 MapContainer 的 onZoomChange 事件。所以我无法获得缩放我的 DivIcon 的缩放更新
解决方案
使用 react-leaflet v3 中提供的 useMapEvents 钩子找到了解决方案:
https ://react-leaflet.js.org/docs/api-map#usemapevents
import {useMapEvents} from "react-leaflet";
import {useState} from "react";
function MyComponent() {
const [zoomLevel, setZoomLevel] = useState(5); // initial zoom level provided for MapContainer
const mapEvents = useMapEvents({
zoomend: () => {
setZoomLevel(mapEvents.getZoom());
},
});
console.log(zoomLevel);
return null
}
function MyMapComponent() {
return (
<MapContainer center={[50.5, 30.5]} zoom={5}>
<MyComponent />
</MapContainer>
)
}
推荐阅读
- javascript - 具有“isResolved”终止条件的递归同步函数
- angular - formatDate 角度显示不正确的分钟
- maven - maven jacoco 插件报告总是显示 0% 的覆盖率
- jquery - Select2 自动完成功能不适用于 WP 5.6
- serverless-framework - 运行 Java 代码的无服务器框架挂起
- php - 如何检查PHP中的文件中是否使用了函数?
- java - 如何从 onCreateView 中的另一个函数获取数据?
- c# - 为什么在一种情况下 GetAwaiter() 会阻止我的应用程序而在另一个应用程序中没有被阻止?
- sorting - Julia - 如何对数组进行排序并获取索引
- firefox - Firefox 在页面刷新时关于“Cache-Control: no-cache”下的缓存资产的确切行为是什么?