使用React导入Google Maps API JS文件

时间:2019-04-07 23:50:00

标签: reactjs google-maps create-react-app

我正在尝试将多边形containsLocation函数集成到我的react应用程序中。目前看来,只有添加了maps.googleapis.com脚本标记的实际JS库才支持此功能。就是说,尝试使用maps.Polygon构造函数时,我一直收到no-undef错误(我目前正在使用具有默认设置的create-react-app)。反正有什么办法防止这种情况发生?

导致问题的代码:

var addedPoly = {
     polygon: maps.Polygon({
                            paths: parsedCoords
                        })
}

1 个答案:

答案 0 :(得分:0)

create-react-app使用Eslint来整理您的代码。鉴于您已通过脚本标签包含了Google地图库,所以它在全球范围内可用,而create-react-app(具有eslint配置)则不希望使用全局变量,除非将它们声明为全局变量。

您可以在eslint documentation the no-undef error

中看到

有两个选择可以解决此问题。首先,如果它是全局的,则可以通过window变量使用。

const maps = window.maps;

那样,它成为一个局部变量。

否则,您可以添加.eslintrc文件(如果尚不存在),在其中将地图设置为全局

"globals": {
    "maps": true
}

最后但并非最不重要的一点是,您可以在文件顶部添加以下注释

/*global maps*/

这也将起作用。

第二个选项相对于其他选项的优势在于,您只需实现一次即可,另外两个选项暗示着每个使用maps的文件中的更改。由您决定