【问题标题】:Trying to update an array in an object inside of an object. React, useState尝试更新对象内部对象中的数组。反应,使用状态
【发布时间】:2020-10-29 09:30:54
【问题描述】:

我有一个如下所示的 onChange 方法:

const onChangeEnableWhenValueCalculation = i => (event) =>{
      setItem({
        ...newItem,
        enableWhen: [
          {
           linkId: newItem.enableWhen[i]?.linkId,
           operator: newItem.enableWhen[i]?.operator,
           valueCalculation: event.target.value,
          }
        ],
      });
  }

我想用 event.target.value 更改 valueCalculation 但在 enableWhen 内的指定索引处。

如何在一个对象、内部和数组、另一个对象内部的特定索引处设置此键的值?任何帮助表示赞赏。

【问题讨论】:

  • 以这种方式修改状态并不安全(详情请查看my answer

标签: javascript reactjs javascript-objects setstate use-state


【解决方案1】:

如果我理解正确,我会这样做:

let enableWhen = [...newItem.enableWhen];
// replace the element at index i with the updated item
enableWhen.splice(i, 1, {
       linkId: newItem.enableWhen[i]?.linkId,
       operator: newItem.enableWhen[i]?.operator,
       valueCalculation: event.target.value,
});

setItem({
    ...newItem,
    enableWhen
});

【讨论】:

    猜你喜欢
    • 2021-04-11
    • 1970-01-01
    • 1970-01-01
    • 2017-08-08
    • 2021-12-26
    • 1970-01-01
    • 1970-01-01
    • 2020-07-01
    • 2019-12-07
    相关资源
    最近更新 更多