2016-04-27 21 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()'を使うことはできません。さもなければ、これは間違いなく働いたでしょう。私はそれを使用することができますが、私は次のエラーメッセージ 'Uncaught ReferenceError:requireは定義されていません'を取得します –

+0

私は知らないReact、しかし多分あなたは_browser.min.js_を逃しましたか? – Max

答えて

1

アンダースコアがロードされる前にmain.jsが実行されると思います。

下線を移動してみてください、スクリプトのリストの先頭に含まれます:

<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は '$'で正常に動作しているのだろうと思います。あなたの答えをありがとう:) –