首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >React-Redux -如何更新Id

React-Redux -如何更新Id
EN

Stack Overflow用户
提问于 2021-06-19 16:18:31
回答 2查看 66关注 0票数 1

我有以下状态:

代码语言:javascript
复制
users: {
    'user-0': {
        id: 'user-0',
        title: 'Bob'
    },
    'user-1': {
        id: 'user-1',
        title: 'John'
    },
    ...

我想通过用户12更改用户1的id,例如:

代码语言:javascript
复制
users: {
    'user-0': {
        id: 'user-0',
        title: 'Bob'
    },
    'user-12': {
        id: 'user-12',
        title: 'John'
    },
    ...

用减速机做这件事最简单的方法是什么?我正在考虑通过更改ids将user-1数据复制到新条目中,但是有没有更好的方法?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-06-19 16:48:22

在不改变数据的情况下:

代码语言:javascript
复制
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

请记住,这是假设您的用户遵循相同的结构。

票数 1
EN

Stack Overflow用户

发布于 2021-06-19 16:27:35

首先复制user-1数据,添加一个新的密钥user-12,并将其值设置为user-1。然后更新user-12id属性并从状态中删除user-1密钥。

代码语言:javascript
复制
users["user-12"] = {...users["user-1"], id:"user-12"};

// remove user-1 key from users state
delete users["user-1"]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68044946

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档