2017-02-16 17 views
0

に反応成分が反応するが、私はエラーを持っている:使用jQueryのは私にjqueryのを追加するコンポーネント

TypeError: _jquery2.default.ajax is not a function at render (C:\xampp\htdocs\formation\delicious-server\tmp\webpack:\src\routes\Xml.js:10:5)

私のコードは本当に簡単です:

var React = require('React'); 
import $ from 'jquery'; 

var Xml = React.createClass({ 
render: function(){ 

    $.ajax({ 
      url: 'config.xml', 
      dataType: 'xml', 
      cache: false, 
      success: function(data) { 
      data = xmlToJson(data); 
      console.log(data); 
      }.bind(this) 
     }); 
     return (<p>data</p>); 
    } 
}); 

module.exports = Xml; 

私は、それはnpm install --save jqueryインストールされますでしたそれでも動作しません。どうすればいいですか

+0

インポートが有効と思われるマウント方法をレンダリングするコンポーネントである前に、AJAX呼び出し機能にcomponentWillMountメソッドを使用して機能を使用してはなりません。 '$'には何が入っていますか? –

答えて

0

レンダリング機能はページに表示されるHTML/Reactコンポーネントのためのものです。このようなものの場合、componentDidMountを使用しますが、データを取得する場合は、 Reduxのようなものを見て、jQueryの必要性を取り除き、データの非同期読み込みのようなものを扱うのを助けることを検討してください。

0

あなたが

var Xml = React.createClass({ 
     componentWillMount: function() { 

     $.ajax({ 
      url: 'config.xml', 
      dataType: 'xml', 
      cache: false, 
      success: function(data) { 
      data = xmlToJson(data); 
      console.log(data); 
      }.bind(this) 
     }); 
     }, 

     render:function(){ 
     <p>data</p> 
     } 
    }); 

module.exports = Xml;