2016-06-26 17 views
0

jsに反応するのは新しいです。私はちょうどajax経由でデータを取得しています。コンポーネントはデータを操作しています。しかし、いつも私は未定義になっています。私のajax呼び出しは機能していますが、コンポーネント内。Reactコンポーネントにajaxデータを渡すには?

App.js

var React = require('react'); 
var Actions = require('../actions'); 
var Store = require('../stores/store'); 
var Nav =require('./Nav'); 
var Fakeprofile = require('./Fakeprofile'); 
var Sidemenu = require('./Sidemenu'); 
var Bulkmail = require('./Bulkmail'); 
var store = require('../stores/store'); 
var api = require('../utils'); 
function getAppState() { 

    return { 
     //result:store.setProfile() 
     result:api.getprofile() 
    } 
} 


var App = React.createClass({ 
    getInitialState:function() { 
     return getAppState(); 
    }, 
    componentDidMount: function(){ 
     Store.addChangeListener(this._onChange); 
    }, 

    componentUnmount: function(){ 
     Store.removeChangeListener(this._onChange); 
    }, 



    render:function() { 
     console.log(this.state); 
     return(
      <div> 
       <Nav/> 
       <Sidemenu/> 
       <Fakeprofile /> 



      </div> 

     ) 
    }, 
    _onChange: function(){ 
     this.setState(getAppState()); 
    } 
}); 

module.exports = App; 

utils.js

var actions = require('./actions'); 

module.exports = { 
    getprofile:function() { 
     console.log('Gettinf data'); 
     var url = 'http://localhost:3000/api/index'; 
     $.ajax({ 
      url:url, 
      dataType:'json', 
      cache:false, 
      success:function success(data) { 
       console.log(data); 



      }, 
      error:function error(xhr,status,err) { 
       console.log(err); 
      } 
     }) 
    } 
}; 

答えて

0

componentdidmountでAjax呼び出しを開始し、約束が解決された後 // App.js

var React = require('react'); 
var Actions = require('../actions'); 
var Store = require('../stores/store'); 
var Nav =require('./Nav'); 
var Fakeprofile = require('./Fakeprofile'); 
var Sidemenu = require('./Sidemenu'); 
var Bulkmail = require('./Bulkmail'); 
var store = require('../stores/store'); 
var api = require('../utils'); 
function getAppState() { 

    return { 


    } 
} 


var App = React.createClass({ 
    getInitialState:function() { 
     return getAppState(); 
    }, 
    componentDidMount: function(){ 
     api.getprofile().then(function(response) { 
      this.setState({ 
        data: response 
      }) 
     }); 
     Store.addChangeListener(this._onChange); 
    }, 

    componentUnmount: function(){ 
     Store.removeChangeListener(this._onChange); 
    }, 



    render:function() { 
     console.log(this.state); 
     return(
      <div> 
       <Nav/> 
       <Sidemenu/> 
       <Fakeprofile /> 



      </div> 

     ) 
    }, 
    _onChange: function(){ 
     this.setState(getAppState()); 
    } 
}); 

module.exports = App; 

var actions = require('./actions'); 

module.exports = { 
    getprofile:function() { 
     console.log('Gettinf data'); 
     var url = 'http://localhost:3000/api/index'; 
     return $.ajax({ 
      url:url, 
      dataType:'json', 
      cache:false, 
      success:function success(data) { 
       console.log(data); 



      }, 
      error:function error(xhr,status,err) { 
       console.log(err); 
      } 
     }) 
    } 
}; 
+0

コンポーネントの状態を設定しますplsコードを完了 –

+0

アイデアはあなたのcomponentDidmountにあなたが取得したデータが設定されていますutils.jsから –

+0

申し訳ありませんが、私はJs.に反応するのは初めてです。私はまだこれらのことを学んでいます。完了コードを記入してください。 –

関連する問題