I'm using react-leaflet (3.2.0) and TypeScript, In my project, I don't want switch layers with LayersControl, but I need do it programatically. So I have something like this:
export const getDefaultBgLayer = () => (
<TileLayer attribution='© <a
href="osm.org/copyright">OpenStreetMap</a> contributors'
url="https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png" maxZoom={20}
minZoom={3} />
);
const MyMap = () => {
const [bgLayer, setBgLayer] = useState<any>(getDefaultBgLayer());
return (
<MapContainer>
{bgLayer}
</MapContainer>
);
}
export default MyMap;
and If I'm trying
setBgLayer(getAnotherBgLayer())
It not will change a backgroud layer. Btw. getAnotherBgLayer return correct backgroud layer becouse:
const [bgLayer, setBgLayer] = useState<any>(getAnotherBgLayer());
works correctly. Any one can help? Regards, Mik