@wayz/react-gl
Version:
React Component for DeckGL, Base on AMap, Mapbox GL
18 lines (17 loc) • 602 B
JavaScript
import { useEffect, useMemo } from 'react';
import useMapGLContext from '../../context/useMapGLContext';
import { extractTsxLayers } from '../../utils/extract-tsx-layer';
function LayerWrapper({ children }) {
const { _addLayer: addLayer, _removeLayer: removeLayer } = useMapGLContext();
const layers = useMemo(() => extractTsxLayers(children), [children]);
useEffect(() => {
if (!Array.isArray(layers))
return;
addLayer(layers);
return () => {
removeLayer(layers);
};
}, [layers]);
return null;
}
export default LayerWrapper;