我使用的是react传单(3.2.0(和TypeScript,在我的项目中,我不想用LayersControl切换层,但我需要用程序来实现。所以我有这样的东西:
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;
如果我尝试
setBgLayer(getAnotherBgLayer())
它不会改变背景层。Btw.getAnotherBgLayer返回正确的背景层:
const [bgLayer, setBgLayer] = useState<any>(getAnotherBgLayer());
工作正常。有人能帮忙吗?问候,Mik
感谢所有试图帮助我的人。
我用这种方法解决了这个问题:
setBgLayer(undefined)
setTimeout(() =>
setBgLayer(mapsource)
, 0)
谨致问候,M.