【发布时间】:2020-10-26 16:51:24
【问题描述】:
我正在尝试使用 ionic 中的 reac-leaflet 创建一个地图,但我没有正确显示它,也可以点击此链接:Missing Leaflet Map Tiles when using react-leaflet
窗口大小调整修复。我在第一次登录时做错了什么?
第一次访问时,这是地图:
调整大小后:
这里是代码。
在 index.html 中
<link rel="stylesheet" href="https://unpkg.com/leaflet@1.7.1/dist/leaflet.css"/>
Home.tsx 简化。
import { Map, Marker, Popup, TileLayer } from 'react-leaflet';
function Home() {
return (
<IonPage>
<IonHeader>
<IonToolbar color="primary">
<IonTitle>Logged in ... </IonTitle>
</IonToolbar>
</IonHeader>
<IonContent>
<Map center={[45.24,8.55]} zoom={13}>
<TileLayer
attribution='&copy <a href="http://osm.org/copyright">OpenStreetMap</a> contributors'
url="https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png"
/>
<Marker position={[45.24,8.55]}>
<Popup>
A pretty CSS3 popup. <br /> Easily customizable.
</Popup>
</Marker>
</Map>
</IonContent>
</IonPage>
)
}
export default Home;
在 css 文件中。
.leaflet-container {
height: 100%;
width: 100%;
}
谢谢。
【问题讨论】:
-
您需要致电
map.invalidateSize()看这里:stackoverflow.com/a/56184369/8283938 -
您的示例有效,即使不使用
invalidateSize,但我使用的是 react-leaflet。在示例中使用传单。
标签: reactjs leaflet ionic5 react-leaflet