简体   繁体   English

setState数组值React.js

[英]setState on Array value React.js

Given the sequence below, I failed to set this.state.arr to data received from request, I suppose my mistake is in the way I try to set arr. 给定以下顺序,我无法将this.state.arr设置为从请求接收的数据,我想我的错误在于尝试设置arr的方式。 How could I achieve wanted result? 我如何获得想要的结果?

EDIT: var data = [{ "name": "AlphaBank", "curs": 3.8549, "cursVanzare": 4.0741, "day": 20 }, { "name": "AlphaBank", "curs": 3.8579, "cursVanzare": 4.0774, "day": 21 }] 编辑: var data = [{ "name": "AlphaBank", "curs": 3.8549, "cursVanzare": 4.0741, "day": 20 }, { "name": "AlphaBank", "curs": 3.8579, "cursVanzare": 4.0774, "day": 21 }]

var copyValue = "";


var TableComponent = React.createClass({
  getInitialState: function () {
    return { sn: "", fn: "", arr: [] }
  },

  componentWillMount: function () {
    $.getJSON("api/data/GetData").done(function (data) {
        copyValue = data[0].name; //data-array of Objects
        this.setState({fn:copyValue, arr: data.slice(0)})
    }.bind(this))
    this.setState({ sn: "value" });
  },

  render: function () {
    return (<div className="container">
      {this.state.sn} {this.state.fn} {this.state.arr[0].name}
    </div>);
  }
})

我的愚蠢错误是在声明arr:[]的同时考虑了传入数据,因此应该将其定义为arr:[{}] (感谢Alexander T在指出错误时提供了帮助)。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM