javascript - Alias ES6 解构

标签 javascript reactjs ecmascript-6

我正在为我的表单创建一个通用函数 checkField,并且我希望能够从状态(或任何 JavaScript 对象)中提取我作为参数

checkField(fieldname) {
   const {
     validityFieldObj,
     fieldname
   } = this.state

   // Would be equivalent to `this.state[fieldname]`
   // But I can't get fieldname from this.state destructuration,
   // as it as already been delcared in the parameter.
   // Any alternative to this issue?
}

最佳答案

要获取字段名称,您需要使用 destructuring with computed property name ,并将结果分配给变量:

const state = {
  validityFieldObj: {},
  abc: 3
};

function checkField(fieldname) {
   const {
     validityFieldObj,
     [fieldname]: value
   } = state;

  console.log(value);
}

checkField('abc');

如果您需要提取属性名称fieldName,您可以使用别名:

const state = {
  validityFieldObj: {},
  fieldname: 'abc'
};

function checkField(fieldname) {
  const {
    validityFieldObj,
    fieldname: nameOfField
  } = state;

  console.log(nameOfField);
}

checkField('abc');

关于javascript - Alias ES6 解构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46145470/

相关文章:

javascript - 带变量的实时增量计数器

javascript - 动态填充复选框并在 React Redux 中维护复选框的状态

javascript - GatsbyJS 在从其他组件呈现 GraphQL 查询时出现问题

Javascript数组减少将数组转换为具有整数键的对象

javascript - 有时会出现 Node.js 错误 : Can't set headers after they are sent,

javascript - 将 join() 添加到 map() 函数

reactjs - Nginx docker 容器在 AWS EC2 上托管 reactjs 应用程序 - 未显示

javascript - 在 React 中显示二进制 PDF

javascript - 尝试将 JSON 对象与 JavaScript ES6 模板文字一起使用时出错

javascript - 在 Promise 中 resolved 或 rejected 之后你应该返回一些东西吗?