【问题标题】:ReactJS - Using .setState to change nested valuesReactJS - 使用 .setState 更改嵌套值
【发布时间】:2016-08-13 14:02:52
【问题描述】:

我正在尝试设置特定元素(复选框)的状态,以便以后可以将此数据传递回父组件,该父组件将依次更新 JSON 对象。我能够设置更高级别元素的状态,但我不明白如何访问嵌套值。

如何使用 .setState 设置特定元素的状态?如this.state.data[0].checked

我正在尝试使用类似这样的东西来设置状态,目前只会更新data

handleChange: function(event) {
    this.setState({data: event.target.value}});
  },

【问题讨论】:

  • 你能分享一些代码吗?

标签: javascript reactjs


【解决方案1】:

看起来你可以使用immutability helpers,如果你使用的是数字/动态键,你应该看看我的question here

您的解决方案如下所示:

handleChange: function(index, event) {
  var data = React.addons.update(this.state.data, {
   [index]: {
     checked: {$set: event.target.checked}
   }
  });
  this.setState({
    data: data
  })
},

注意复选框使用e.target.checked 而不是e.target.value 来获取布尔状态,而不是与复选框关联的值。

这是您将函数与您必须事先设置的 i 索引附加的方式:

onChange={this.handleChange.bind(this, i)}

【讨论】:

  • 这正是我想要的。我用几个小的语法编辑更新了你的帖子,并且不得不在最后加上那个逗号来让我很开心。谢谢!
猜你喜欢
  • 1970-01-01
  • 2016-03-30
  • 2021-11-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-01-04
  • 1970-01-01
相关资源
最近更新 更多