将数据从回调传递到React组件?

时间:2015-02-02 19:24:00

标签: javascript callback reactjs

我正在渲染需要异步返回数据的react组件。当它从回调中返回时,我应该如何将它传递给react组件?

目前处于渲染功能:

var dataToReturn; 
asynchCall(args, function(err, results) {
  dataToReturn = results;
})

return (
    <MyComponent data={dataToReturn} />
)

这当然没有成功,因为数据尚未返回。如果我将渲染移动到回调中,这似乎是一个糟糕的编程模式。 React API中是否有针对此用例的内容?

谢谢你!

2 个答案:

答案 0 :(得分:3)

是的,就像@Fouad所说:

var NewComponent = React.createClass({ 
    componentDidMount: function() {
       asynchCall(args, function(err, results) {
          this.setState({data: results});
       }.bind(this));
    },

    return (
        <MyComponent data={this.state.data} />
    )
});

另外,请查看文档页面Load Initial Data via AJAX

答案 1 :(得分:2)

您应该使用this.state&amp;而不是局部变量。 this.setState将触发重新渲染。从服务器http://facebook.github.io/react/docs/tutorial.html#fetching-from-the-server

获取此链接