2024, for react using lodash.debounce
useEffect(() => {
const debouncedResize = debounce(() => {
mapRef.current?.resize();
}, 0);
const handleResize = () => {
debouncedResize();
};
const resizer = new ResizeObserver(handleResize);
if (mapContainerRef.current) {
resizer.observe(mapContainerRef.current);
}
return () => {
resizer.disconnect();
debouncedResize.cancel();
};
}, []);