在React中使用immutability-helper来设置变量对象键

时间:2017-02-22 23:55:54

标签: javascript json reactjs immutability

我有一个我想在React中编写的函数。在我的课堂上,我有一个状态对象fields,如下所示:

this.state = {
  step: 1,
  fields: {
    type: '',
    name: '',
    subtype: '',
    team: '',
    agreement: ''
  }
};

我有各种使用immutability helper分配这些键的功能,通常如下所示:

assignType(attribute) {
  var temp = update(this.state.fields, {
    type: {$set: attribute}
  });

  this.setState({
    fields: temp
  });
}

喜欢要做的是使用一个更通用的功能,并执行以下操作:

assignAttribute(field, attribute) {
  var temp = update(this.state.fields, {
    field: {$set: attribute}
  });

  this.setState({
    fields: temp
  });
}

但是,这不起作用。如何使用immutability-helper

来使用变量键

1 个答案:

答案 0 :(得分:11)

想出来!我需要使用ES6 computed property names,只需将assignAttribute编辑为:

assignAttribute(field, attribute) {
  var temp = update(this.state.fields, {
    [field]: {$set: attribute}
  });

  this.setState({
    fields: temp
  });
}