首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >ReactJS异步,等待结果

ReactJS异步,等待结果
EN

Stack Overflow用户
提问于 2014-06-12 20:57:46
回答 1查看 42.3K关注 0票数 24

我是ReactJS的新手,正在尝试理解它。现在,我遇到了加载渲染所需信息的情况。但是,因为它是异步的,所以组件在信息传递给它之前呈现自己。

var info;

function getInfo() {
    //this will come from backend REST with Backbone which takes a bit
}

var InfoPage = React.createClass({
    render: function() {        
        getInfo()

        return (
            <div>info: {info}</div>            
        );
    }
});

现在div将不会显示info-value,因为它还没有在渲染中设置。那么我如何让render等待信息呢?或者应该如何解决这个问题?

实际的React.renderComponent是从顶层调用的,它会触发所有子组件,所以我认为我不能强制执行新的呈现(我不应该?)。

EN

回答 1

Stack Overflow用户

发布于 2014-06-12 21:18:10

您需要做如下操作:

var InfoPage = React.createClass({
  getInitialState: function() {
     return {info: "loading ... "};
  },
  componentDidMount: function() {
     this.getInfo();
  },
  render: function() {        
    return (
        <div>info: {this.state.info}</div>            
    );
  },
  getInfo:function(){
     $.ajax({ url:"restapi/getInfo/whatever", .... }).success(function(res){
        this.setState({info:res});
     }.bind(this));
  }
});
票数 23
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24185029

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档