javascript - ReactJS - 使用 .setState 更改嵌套值

标签 javascript reactjs

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

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

我正在尝试使用类似的方法设置状态,此时只会更新数据:

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

最佳答案

看起来您可以使用 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 来获取 bool 状态,而不是与复选框关联的值。

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

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

关于javascript - ReactJS - 使用 .setState 更改嵌套值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38933502/

相关文章:

reactjs - 如何在 react-navigation v5 中从单个屏幕隐藏堆栈导航标题

reactjs - 使用 async componentDidMount() 好吗?

javascript - 重构 Javascript 代码 - 需要重构

javascript - React JS 通过按钮进行多重过滤

reactjs - 为什么不能给钩子(Hook)的初始值一个空对象?

javascript - socket.io 和异步事件

javascript - 使用 Javascript 通过正则表达式过滤数组

javascript - 在 javascript 中,obj.type 始终报告为 HTML5 类型的文本

Javascript 在调用未定义的函数时不会抛出错误

javascript - 仅使用 Javascript 发推文