2015-11-02 112 views
0

我让我从外部JSON初始数据React Js:如何重新加载通过ajax加载的初始数据?

componentDidMount: function() { .... $.get(jsonfile, function(data) { .... 

但是,通过输入“jsonfile”的状态发生变化。 当“jsonfile”prop的状态发生变化时,再次调用render方法,但我也想重新运行$.get请求。 什么是适当的(react)的方式来做到这一点?

+1

请出示你的组件的一些代码示例,您问题太广泛,因为它目前代表 – deowk

回答

3

你应该抽象掉你的数据读取。如果你把你的数据的抓取在一个单独的辅助方法,在需要的时候可以调用该方法,它应该做的状态取(后来更新)

React.createClass({ 
    componentDidMount: function() { 
     this.fetchData(); 
    }, 

    fetchData: function() { 
     var _this = this; 
     $.get('....', function (result) { 
      _this.setState(result); 
     }); 
    }, 

    handleClick: function() { 
     this.fetchData(); 
    }, 

    render: function() { 
     return (<div onClick={this.handleClick}>{data}</div>); 
    }, 
}); 
+0

谢谢tak3r,正是我一直在寻找! – Phoelpis

0

如果可以,请从项目中上传一些代码。

从我所了解的情况来看,您正在调用API来产生JSON响应,并且您有相同json的用户输入?

在这种情况下,如果您想对API进行补充调用,则应该将API调用置于反应组件提供的正确生命周期方法中。

请参阅https://facebook.github.io/react/docs/component-specs.html