【发布时间】:2019-04-09 15:14:57
【问题描述】:
我正在尝试使用 Google Maps JavaScript API 将地图添加到我的 Gatsby 项目。
我是 customizing 盖茨比 html.js 通过默认副本的副本:
cp .cache/default-html.js src/html.js
然后,根据Google Maps Hello World example、和,经过一番谷歌搜索后,我发现我需要使用dangerouslySetInnerHTML,并在我关闭</body>标签之前添加以下内容html.js:
<script dangerouslySetInnerHTML={{
__html: `
var map;
function initMap() {
map = new google.maps.Map(document.getElementById('map'), {
center: {lat: -34.397, lng: 150.644},
zoom: 8
});
}
`
</script>
<script src="https://maps.googleapis.com/maps/api/js?key=MY_KEY&callback=initMap"
async defer></script>
(显然,用我的实际 API 密钥替换 MY_KEY)
然后我在我的 React 组件中创建了一个空的 <div id="map"></div>。
这行得通……有点。如果我导航离开,并返回到带有地图的页面,它就会消失。如果我重新加载它所在的页面,我只能看到地图。
有什么想法吗?
【问题讨论】:
标签: reactjs google-maps gatsby