尝试更新对象内部对象中的数组。反应,useState

时间:2020-07-08 21:21:16

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

我有一个如下所示的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内的指定索引处更改。

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

1 个答案:

答案 0 :(得分:2)

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

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
});