【问题标题】:setState on Array value React.js数组值 React.js 上的 setState
【发布时间】:2016-03-25 11:57:40
【问题描述】:

鉴于以下顺序,我未能将 this.state.arr 设置为从请求接收的数据,我想我的错误在于我尝试设置 arr 的方式。我怎样才能达到想要的结果?

编辑: 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>);
  }
})

【问题讨论】:

  • 你能发布data的样子吗?
  • 数据是 30 个对象的数组 { name : string , secondProp: string, thirdProp: int }
  • 我遇到了请求问题:无法加载 XMLHttpRequest。请求的资源上不存在“Access-Control-Allow-Origin”标头。因此,Origin 'fiddle.jshell.net' 不允许访问
  • 当然,你必须在你的环境中使用来自 fiddle 的代码
  • 到目前为止:sn,fn -ok ,在 setState 中获取数据,然后在渲染中带有 InitialState 的值

标签: javascript arrays visual-studio reactjs


【解决方案1】:

我的愚蠢错误是声明 arr: [ ] 同时考虑到传入数据它应该被定义为 arr: [{ }] (感谢Alexander T帮助指出错误)。

【讨论】:

    猜你喜欢
    • 2014-11-17
    • 1970-01-01
    • 1970-01-01
    • 2016-02-09
    • 1970-01-01
    • 2018-01-30
    • 1970-01-01
    • 2018-11-02
    • 2020-04-16
    相关资源
    最近更新 更多