对象分配动态变量

Object assign with dynamic variable

我的 Redux 商店中有这个 initialState

const initialState = {
  isFetching : false,
  active     : {}
}

其中 active 是一个对象。

现在我有一个 应该 附加或添加 属性 到 activedata 属性 的操作,像这样:

[DASHBOARD_TEMPLATE_DATA_RECEIVE]: (state, action) => {
    return Object.assign({}, state, {
      isFetching   : false,
      active       : Object.assign({}, active, {data[action.key]: action.data})
    })
}

如您所见,data[action.key] 是不允许的。我该怎么做?

试试这个:

active: Object.assign({}, active, {
  data: Object.assign({}, data, {
    [action.key]: action.data
  })
})

首先构建对象,使用方括号表示法将字符串用作 属性 名称:

var data = {};
data[action.key] = action.data;

然后使用新创建的对象:

[DASHBOARD_TEMPLATE_DATA_RECEIVE]: (state, action) => {
    return Object.assign({}, state, {
      isFetching   : false,
      active       : Object.assign({}, active, data)
    })
}

我想计算的 属性 名称可能有用。

未测试:

active: Object.assign({}, active, {[data[action.key]]: action.data})