我有一个函数要在RESPECT中编写.在我的类中,我有一个状态对象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使用变量键可以做什么?

推荐答案

Figured it out! I needed to use ES6 computed property names and simply edit assignAttribute to:

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

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

Json相关问答推荐

抓取低于w jolt的对象级别

如何使用JQ将JSON字符串替换为解析后的类似功能?

如何循环访问多个子数组并在单个JSON中检索数据点

集成wix.comstore API|变音符号问题

Ansible - 将文件内容添加到字典中

使用 jolt 将对象数组转换为数组

Oracle Apex - 将 JSON 对象分配给变量以返回

如何在 jQuery 中循环遍历 JSON 数组?

Angular 2/Web Api - json 解析错误语法错误意外结束输入

为什么我不能在 C# 中引用 System.Runtime.Serialization.Json

在 JSON 字符串中react i18n 换行符

从 HttpResponse 获取 json

JSON 到 JSON 转换器

如何访问 JSON 对象数组的第一个元素?

杰克逊:反序列化 for each 值都具有正确类型的 Map

如何让 javascript 从 .json 文件中读取?

如何使用 Json.NET 反序列化可以是两种不同数据类型的 JSON 属性

如果键可能不存在,则从 Python dict 读取

Backbone.js 模型与集合

在没有 ASP.NET Core 的情况下将 IConfigurationSection 绑定到复杂对象