我有以下状态:
users: {
'user-0': {
id: 'user-0',
title: 'Bob'
},
'user-1': {
id: 'user-1',
title: 'John'
},
...我想通过用户12更改用户1的id,例如:
users: {
'user-0': {
id: 'user-0',
title: 'Bob'
},
'user-12': {
id: 'user-12',
title: 'John'
},
...用减速机做这件事最简单的方法是什么?我正在考虑通过更改ids将user-1数据复制到新条目中,但是有没有更好的方法?
发布于 2021-06-19 16:48:22
在不改变数据的情况下:
let data = {
users : {
'user-0': {
id: 'user-0',
title: 'Bob'
},
'user-1': {
id: 'user-1',
title: 'John'
},
'user-2': {
id: 'user-2',
title: 'Bohn'
}
}
}
let dataCopy = {
...data,
'users' :{
...data.users,
'user-12' : {
...data.users['user-1'],
id: 'user-12'
}
}
}
delete dataCopy.users['user-1'];您需要创建一个对象的深层副本,并且只更改该副本的属性。不要改变原始对象。我正在使用spread运算符和delete
请记住,这是假设您的用户遵循相同的结构。
发布于 2021-06-19 16:27:35
首先复制user-1数据,添加一个新的密钥user-12,并将其值设置为user-1。然后更新user-12的id属性并从状态中删除user-1密钥。
users["user-12"] = {...users["user-1"], id:"user-12"};
// remove user-1 key from users state
delete users["user-1"]https://stackoverflow.com/questions/68044946
复制相似问题