无法分配给只读 属性 of #<Object> using React with Recoil

Cannot assign to read only property of #<Object> using React with Recoil

我正在尝试更新我的状态(对象数组),但每当我尝试使用 .map 或编辑状态对象的克隆时都会出现上述错误。

  React.useEffect(() => {
setUserMeasurements((oldUserMeasurements) => {
  return oldUserMeasurements.map(nameAndMeasure => {
    if (nameAndMeasure.name === name) { nameAndMeasure.measure = 60 }
    return nameAndMeasure;
  })
})

})

当我尝试“nameAndMeasure.measure = 60”部分代码时似乎不喜欢它,但我不明白为什么。谁能解释一下?

我发现我可以使用此函数来执行我试图让 .map 执行的操作:

function replaceItemAtIndex(arr, index, newValue) {  return [...arr.slice(0, index), newValue, ...arr.slice(index + 1)]; }

.slice 方法似乎创建了一个新数组,它以 .map 不满足的方式满足 javascript。