2016-04-27 34 views
0

我遇到了使用ReactJS下劃線的問題。當我運行我ReactJS類我得到以下錯誤:與ReactJS一起使用下劃線

Uncaught ReferenceError: _ is not defined

的index.html

<html> 
    <head> 
    <meta http-equiv="X-UA-Compatible" content="IE=9"> 
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
    <script src="https://cdnjs.cloudflare.com/ajax/libs/react/0.14.7/react.js"></script> 
    <script src="https://cdnjs.cloudflare.com/ajax/libs/react/0.14.7/react-dom.js"></script> 
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script> 
    <script src="https://cdnjs.cloudflare.com/ajax/libs/marked/0.3.5/marked.min.js"></script> 
    <script src="https://cdnjs.cloudflare.com/ajax/libs/babel-core/5.8.23/browser.min.js"></script> 
    <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.8.3/underscore-min.js"></script>  
    </head> 
    <body> 
    <div id="content"></div> 
    <script type="text/babel" src="scripts/main.js"></script> 
    </body> 
</html> 

main.js

var MyBox = React.createClass({ 
    render: function(){ 
     console.log(_.difference([1,2,3], [2,4,6,7])); 
    } 
}); 

ReactDOM.render(
    <MyBox />, 
    document.getElementById('content') 
); 

的錯誤是非常明顯的,它根本不明白什麼是_符號。我的問題是,即使我已經在index.html文件中導入了下劃線庫,爲什麼仍然會出現此錯誤?是否有可能在ReactJS中使用下劃線?我認爲它應該工作,因爲jQuery也在那裏工作,我不必爲了使用它而定義jQuery的$。我只是簡單地導入了jQuery庫,它立即工作。

所有幫助表示讚賞。

+1

你試圖'要求(「_」)'? –

+0

@不幸的是,由於項目限制,我不能使用require()。否則,這肯定會奏效。即使我可以使用它,我得到以下錯誤消息'未捕獲的ReferenceError:需求未定義' –

+0

我不知道React,但也許你錯過了_browser.min.js_? – Max

回答

1

我的猜測是你的main.js在加載Underscore之前被執行。

嘗試移動下劃線包括你的腳本列表的頂部:

<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.8.3/underscore-min.js"></script> 
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/0.14.7/react.js"></script> 
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/0.14.7/react-dom.js"></script> 
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script> 
<script src="https://cdnjs.cloudflare.com/ajax/libs/marked/0.3.5/marked.min.js"></script> 
<script src="https://cdnjs.cloudflare.com/ajax/libs/babel-core/5.8.23/browser.min.js"></script> 
+0

非常感謝。這實際上解決了這個問題。它似乎不得不在'react.js'和'react-dom.js'庫之前加載。我想知道爲什麼,因爲jQuery通常使用'$'工作。謝謝您的回答 :) –