showTooltip
должна быть переменной состояния, использующей useState
, поэтому при ее изменении компонент будет перерисован.
Более того, я думаю, что если вы используете функциональные компоненты, это должно быть useRef
вместо createRef (), а затем
<LeafletMap
ref={mapRef}
...
Так должно быть так:
let [showTooltip, setShowTooltip] = React.useState(false);
let mapRef = React.useRef();
const renderMarkers = () => {
const map = mapRef.current;
if (map) {
console.log(map.leafletElement.getZoom());
// change here the showTooltip flag
setShowTooltip(map.leafletElement.getZoom() > 13 ? true : false);
}
};
<MarkerClusterGroup showCoverageOnHover={false}>
{data.map(item => (
<Circle
....
<MarkerClusterGroup/>
Я немного изменил пример, чтобы увеличить масштаб больше 13, чтобы показать 1 и меньше, чтобы не показывать его для демонстрации в демонстрации, потому что при меньших уровнях масштабирования отображается пузырь, и вы не сможете увидеть подсказку .
Демо