Javascript 以不可变方式更新其值为对象数组的对象
我需要更新React组件中的状态: 该州的情况如下:Javascript 以不可变方式更新其值为对象数组的对象,javascript,reactjs,typescript,immutability,Javascript,Reactjs,Typescript,Immutability,我需要更新React组件中的状态: 该州的情况如下: const state = { '123': [{ progress: 0; lastModified: 999; }, { progress: 0; lastModified: 666; }], '1234': [{
const state = {
'123': [{
progress: 0;
lastModified: 999;
},
{
progress: 0;
lastModified: 666;
}],
'1234': [{
progress: 0;
lastModified: 111;
},
{
progress: 0;
lastModified: 222;
}]
};
鉴于我知道对象键,例如123
,我想更新进度
值,因为我还知道用于查找对象的lastModified
如何以不变的方式进行此操作?您需要为要修改的对象的所有祖先创建新容器
const knownTarget='123';
常数knownLastModified=666;
常数变化={
进展:100
}
常量状态={
'123': [{
进展:0,
更新日期:999,
},
{
进展:0,
最后修改:666,
}
],
'1234': [{
进展:0,
最后修改:111,
},
{
进展:0,
最后修改:222,
}
]
};
const newState={…state,
[knownTarget]:状态[knownTarget]。映射(项=>{
如果(item.lastModified==knownLastModified){
返回{
…项目,
…变化
};
}
退货项目;
})
}
console.log(状态);
console.log(newState)
您知道更新的值lastModified
吗?是的,它是已知的这回答了您的问题吗?