Reactjs Ajax在获取json对象时返回第一个空数组

时间:2015-08-17 11:29:43

标签: php jquery ajax object reactjs

我有问题。我正在学习React js,我有一个模板,我必须编辑。我需要添加一些ajax方法来获取和发送信息。我设法做了一些这些行动,但现在我遇到了问题。

我有php脚本,它让我json_encode。

getCategories: function() {
$.ajax({
  url: '#########my_url#########',
  dataType: 'json',
  success: function(data) {
    this.setState({datas: data});
  }.bind(this)
});
},

我有这个

getInitialState: function() {
  return {datas: []};
},

问题是我总是首先获得空数组,然后是结果。当我尝试使用它时,它会让我产生错误,因为它试图映射空数组。在我尝试使用该对象之前,这是console.log。

[HMR] Waiting for update signal from WDS...

[]

[WDS] Hot Module Replacement enabled
[Object, Object, Object, Object]

如何在对象装满后使其工作?

1 个答案:

答案 0 :(得分:0)

第一个选项:在ajax调用成功时呈现您的视图

第二个选项:预测你的state.datas仍为空的情况

例如,如果您正在使用渲染功能,请尝试:

   { this.state.datas ? <div> Loading </div> : <....

以上是JSX语法

希望有所帮助

修改

if(this.state.datas.length == 0) {
    var mycomponent =<div> Loading ... </div>;
} else {
   var mycomponent = this.state.datas;
}

基本上这应该有用。