i具有一个函数 initMap()
,该功能应该在Google Maps API完成加载时被调用。此功能管理我在Web应用中使用的地图的所有设置。
initMap()
生活在一个名为init-map.js
的文件中。
我正在迁移到WebPack,因此init-map.js
现在使用require('./scripts/init-map.js
包含在index.js
中。
我遇到了一个错误InvalidValueError: initMap is not a function
,但是当我使用自己的<script>
标签加载init-map.js
时,我不会收到错误。
原因错误:
<html>
<head>
...
<script src="bundle.js"></script> <!-- init-map.js is required in this file -->
</head>
<body>
....
<script src="https://maps.googleapis.com/maps/api/js?key=🔑&callback=initMap" async defer></script>
</body>
</html>
无问题的工作:
<html>
<head>
...
<script src="bundle.js"></script>
<script src="./scripts/init-map.js"></script>
</head>
<body>
....
<script src="https://maps.googleapis.com/maps/api/js?key=🔑&callback=initMap" async defer></script>
</body>
</html>
我不明白如何使initMap()
用于回调时可用于Google Maps API。
我也希望在index.js
中管理init-map.js
。
我相信这是因为Bundler将您的Initmap函数的名称更改为单个字母,例如e
或f
。
请检查您的呼叫部分。是抛出404个错误吗?在检查元素 ->网络
上尝试从" ./scripts/init-map.js"中使用"/scripts/init-map.js"或" scripts/init-map.js"