我的状态中有一个对象。然后我动态地添加值,它可以看起来像这样:
{
2311: 2
}
如果2311
值已经存在,我如何在不改变状态的情况下覆盖它。
添加新值很简单。我有一个对象obj = { prop: val}
,然后是{ ...this.state.obj, obj }
但我不记得如何更改动态的CCD_ 4值。
我知道我可以使用lodash或其他东西进行深度复制,更改特定值,我已经完成了,但我想知道如何按照上面描述的方式进行。
谢谢你的帮助。
使用Object.assign(obj1,obj2(
Object.assign(obj, { 2311: 'new value' })
您可以简单地执行,例如:
let obj = {test: 23, test2: 24, 2311: 2};
obj = {...obj, 2311: "new value"}
console.log(obj);
这样,您将拥有以前的所有值,并且只更改2311
值
我在这里所做的(obj = {...obj, 2311: "new value"}
(是从对象中复制所有值,并更改我想要的内容,因为在一个对象中不能有两个具有相同密钥的值,密钥2311
被新值覆盖