2017-05-01 51 views
8

我使用名爲create-react-app的cli創建反應應用程序。看起來Facebook在底下做了很多事情,比如webpack等等。但是,我想它也可能有一些限制。我嘗試按照this tutorial加載谷歌地圖API。當我調試我的代碼時,我可以看到google map已被成功引用。 enter image description here谷歌未在反應應用程序中使用create-react-app定義

但是,然後我點擊播放,讓應用程序完成運行。我得到谷歌沒有從webpackHotDevClient.js定義的錯誤和我的應用程序崩潰。

enter image description here

enter image description here

由於編譯的WebPack在飛行中的文件,我認爲它有麻煩通過HTTPS加載谷歌地圖?

有什麼想法?

+0

你的'.eslintrc'看起來像什麼? – QoP

+0

創建React應用程序不支持自定義ESLint配置,因此此評論在這種情況下不相關。 –

回答

21

user guide中所述,您需要明確讀取window中的任何全局變量。你應該在文件的頂部,它會工作:

const google = window.google; 

我們執行,這是因爲人們普遍誤解的局部變量,導入模塊,和全局變量之間的差異的原因,所以我們要永遠做當你使用全局變量時,它在代碼中清楚。

順便說一下,這與Webpack或HTTPS無關。你看到這個是因爲我們使用了禁止未知全局變量的linting規則。

+0

很高興知道。感謝您的回覆 – eded

+0

我在Nuet.js的Vue.js中遇到了同樣的問題。你的答案也適用於我。 –

+0

謝謝,我使用react-geosuggest時遇到了問題,您的回答對我有幫助。 – dhidy

1

我認爲當你從html腳本導入谷歌地圖時,google變量已經可用。由Eslint引起的這個錯誤,你可以嘗試在你的文件的頂部添加下面的行來禁用ESlint

/*global google*/ 
相關問題