我想渲染组件Searchbox,我将其完全复制到我的应用程序中,但是我收到错误:
error Line 44: 'google' is not defined no-undef Line 79: 'google' is not defined no-undef
我已经加载了我的
<script async defer src="https://maps.googleapis.com/maps/api/js?key=MY_KEY_IS_HERE"></script>
进入index.html
的头部,但无论如何它都会向我显示错误。可能是index.html
无法加载我的脚本吗?
我用create-react-app
创建了我的应用程序答案 0 :(得分:2)
可能是你的linter抱怨一个未定义的变量。因为&#39; google&#39;在外部加载<script>
标记的脚本中定义,您的linter不知道它。尝试为变量添加例外。在eslint中,您可以在访问变量的文件顶部添加此行:
/*global google*/
但由于async
标记中包含<script>
属性,因此您的脚本可能仍会在执行maps API之前运行。一种解决方案是删除async
和defer
属性。但是,如果您确实希望map API以异步方式加载,那么您可以尝试使用其他库,例如react-async-script-loader
。
这是关于类似问题的discussion。