В итоге я нашел решение, похожее на Ответ Луки , поэтому я решил добавить его и в качестве ответа. Мне нужно было закрыть все всплывающие окна при перемещении или масштабировании карты, и в итоге получилось следующее:
import React, { useRef } from "react";
import { Map } from "react-leaflet"
export default () => {
const mapRef = useRef(null);
const closePopups = () => {
mapRef.current.leafletElement.closePopup();
};
const handleOnDragend = e => {
closePopups();
};
const handleOnZoomend = e => {
closePopups();
};
if (typeof window === 'undefined') {
return null;
}
return (
<Map
ref={mapRef}
onDragend={handleOnDragend}
onZoomend={handleOnZoomend}
>
</Map>
)
}
Это, однако, может быть расширено так, что любой может вызвать метод closePopups
.