1

我想渲染组件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 创建了我的应用程序

4

1 回答 1

2

可能是您的 linter 抱怨未定义的变量。因为 'google' 是在使用标签从外部加载的脚本中定义的<script>,所以您的 linter 不知道它。尝试为变量添加异常。在eslint中,您可以在访问变量的文件顶部添加这一行: /*global google*/ 但是由于您的标签中有该async属性<script>,因此您的脚本可能仍会在执行地图 API 之前运行。一种解决方案是删除asyncanddefer属性。但是如果你真的希望地图 API 异步加载,那么你可以尝试一个额外的库,比如react-async-script-loader. 这是关于类似问题的讨论。

于 2017-10-22T11:53:56.363 回答