首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >redux查找和替换状态对象

redux查找和替换状态对象
EN

Stack Overflow用户
提问于 2022-10-27 23:36:17
回答 1查看 19关注 0票数 2

我有一个板上有多个卡片项目,我想实现一个编辑功能,在那里,如果点击用户可以然后键入一个新的titledescription卡。我可以成功地完成所有这一切,直到我到达还原器,在那里我试图更新存储以反映用户的edit操作。

编辑有效载荷对象是:

代码语言:javascript
运行
复制
{
    "title": "dasdsads 123456",
    "description": "asdsadsad 1234565",
    "id": "badb4cbb-a66c-5c5d-57ee-5401eeaac0cd"
}

我的状态:

代码语言:javascript
运行
复制
   {
  ideaBoard: {
    tiles: [
      {
        title: 'dasdsads',
        description: 'asdsadsad',
        id: '0e62aa65-d465-6b73-3747-7e2f654d96d6',
        createdAt: '28/10/2022, 00:31:32'
      },
      {
        title: 'dasdsads 123',
        description: 'asdsadsad 123',
        id: 'badb4cbb-a66c-5c5d-57ee-5401eeaac0cd',
        createdAt: '28/10/2022, 00:31:39'
      }
    ]
  }
}

我的减速器updateTile

代码语言:javascript
运行
复制
updateTile: (state, { payload }): any => {
  const update: any = state.tiles.find((tile) => tile["id"] === payload.id);


  return {

  };
},

所以我想首先在有效负载id和状态id之间找到一个匹配的id。一旦我找到它,我想用有效载荷对象替换状态中的那个对象。

EN

回答 1

Stack Overflow用户

发布于 2022-10-27 23:41:43

只需在状态下对Array#map字段进行titles,并替换特定的title对象。

代码语言:javascript
运行
复制
updateTile: (state, { payload }): any => {
  return {
    ...state,
    titles: state.titles.map((title) => title.id === payload.id ? 
      { ...title, ...payload } : title),
  };
},
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74229290

复制
相关文章

相似问题

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