Reactjs @setState具有动态键值

Reactjs @setState with a dynamic key value

本文关键字:动态 键值 @setState Reactjs      更新时间:2023-09-26

我在 props 中有一个动态对象,我想在状态中发送它

@setState
  key: val
  values:
    another_key: value
    @props.data.option: @props.data.value

但是这种方式不起作用,我找到了这个解决方案:

  newState = {}
  newState[@props.data.option] = @props.data.value
  this.setState(newState);

但这种方式设定了权利在状态中的价值

这里的问题是您正在处理状态中的嵌套对象,并且当您似乎只想更新values对象中的键子集时,整个对象values被替换。 最好的方法是通过set操作使用 React 的不可变性助手。(https://facebook.github.io/react/docs/update.html)。

使用 ES6,您可以设置动态键:

var update = require('react-addons-update');
var newState = update(this.state, {
  values:  {[dynamic_key]: {$set: dynamic_value}}
});
this.setState(newState);