2017-04-01 76 views
0

我有一個index.html頁,其中包括定義一個簡單的變量JavaScript文件中的陣營設置:反應包括腳本數據無法識別

var pData = {}; 

裏面我index.js文件,我試圖訪問這個變量一個簡單的方法:

ReactDOM.render(
    <App presData={ pData }/>, 
    document.getElementById('root') 
); 

但運行npm start這並不編譯,因爲它說'pData' is not defined後。

當我添加一些調試我得到的東西真的很奇怪,我說:

var testData; 
if (typeof pData === "object") { 
    testData = pData; // Fails on this line because pData is not defined! 
} else { 
    alert("Typeof pData inside index.js: " + (typeof pData)); 
} 

,因爲變量是不是當變量被定義爲一個對象,只是執行的代碼塊中定義上面的代碼失敗。

這是怎麼可能的,以及如何訪問React文件中的這個變量?

在此先感謝您的幫助。

保羅

回答

1

你可以用它window.pData = {};將可用,但它不是一個很好的做法。如果你使用ES6和babel,你可以用import導入你的變量。

myData.js

var pData = {}; 
export default pData; 

index.js:

import pData from './myData.js'; 

ReactDOM.render(
    <App presData={ pData }/>, 
    document.getElementById('root') 
); 
+0

上面的工作!多謝你們! –

0

這是因爲你的js文件包括HTML,所以當盯着編譯,index.js不知道在哪裏pData定義。

假設代碼var pData = {};是在一個名爲data.js文件,它在與index.js同一個文件夾,儘量

import './data.js'; 

在index.js文件第一線;