将数据从回调传递到 React 组件?
Pass data from callback to React component?
我正在渲染一个需要 returns 异步数据的 React 组件。当回调 returns 时,我应该如何将其传递给反应组件?
当前在渲染函数中:
var dataToReturn;
asynchCall(args, function(err, results) {
dataToReturn = results;
})
return (
<MyComponent data={dataToReturn} />
)
这当然是行不通的,因为数据还没有返回。如果我将渲染移到回调中,那似乎是一种糟糕的编程模式。 React API 中是否有针对此用例的内容?
谢谢!
您应该使用 this.state
& this.setState
而不是局部变量,这将触发重新渲染。查看此 link 从服务器 http://facebook.github.io/react/docs/tutorial.html#fetching-from-the-server
获取
是的,就像@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
我正在渲染一个需要 returns 异步数据的 React 组件。当回调 returns 时,我应该如何将其传递给反应组件?
当前在渲染函数中:
var dataToReturn;
asynchCall(args, function(err, results) {
dataToReturn = results;
})
return (
<MyComponent data={dataToReturn} />
)
这当然是行不通的,因为数据还没有返回。如果我将渲染移到回调中,那似乎是一种糟糕的编程模式。 React API 中是否有针对此用例的内容?
谢谢!
您应该使用 this.state
& this.setState
而不是局部变量,这将触发重新渲染。查看此 link 从服务器 http://facebook.github.io/react/docs/tutorial.html#fetching-from-the-server
是的,就像@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