我如何在react传单中编程一层



我使用的是react传单(3.2.0(和TypeScript,在我的项目中,我不想用LayersControl切换层,但我需要用程序来实现。所以我有这样的东西:

export const getDefaultBgLayer = () => ( 
<TileLayer attribution='&copy; <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;

如果我尝试

setBgLayer(getAnotherBgLayer())

它不会改变背景层。Btw.getAnotherBgLayer返回正确的背景层:

const [bgLayer, setBgLayer] = useState<any>(getAnotherBgLayer());

工作正常。有人能帮忙吗?问候,Mik

感谢所有试图帮助我的人。

我用这种方法解决了这个问题:

setBgLayer(undefined)
setTimeout(() =>
setBgLayer(mapsource)
, 0)

谨致问候,M.

最新更新