【问题标题】:Reactjs Ajax returns first empty array while getting json objectReactjs Ajax在获取json对象时返回第一个空数组
【发布时间】:2015-11-10 00:33:49
【问题描述】:

我有问题。我正在学习 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]

物品装满后如何让它工作?

【问题讨论】:

    标签: php jquery ajax object reactjs


    【解决方案1】:

    第一个选项:呈现您对 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;
    }
    

    基本上这应该可行。

    【讨论】:

    • if(jQuery.isEmptyObject(this.state.datas)) { var RowsBaby = this.props.datas.map(function(data) { return ( ) }); } else { var RowsBaby = } 那是我添加的代码,它给了我 Uncaught TypeError: Cannot read property 'map' of undefined Againt it is not able to read the object。跨度>
    • 你不需要使用 jquery,而且我认为你的支票写得不正确我编辑了我的帖子
    • 谢谢。我已经颠倒了 if 语句中的逻辑。对不起。它现在正在工作。谢谢。
    猜你喜欢
    • 1970-01-01
    • 2019-04-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-16
    • 2013-12-29
    • 2022-01-19
    相关资源
    最近更新 更多