我正在渲染需要异步返回数据的react组件。当它从回调中返回时,我应该如何将它传递给react组件?
目前处于渲染功能:
var dataToReturn;
asynchCall(args, function(err, results) {
dataToReturn = results;
})
return (
<MyComponent data={dataToReturn} />
)
这当然没有成功,因为数据尚未返回。如果我将渲染移动到回调中,这似乎是一个糟糕的编程模式。 React API中是否有针对此用例的内容?
谢谢你!答案 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