簡體   English   中英

如何更新嵌套在 redux state 中的 object 中的某些鍵值

[英]How to update certain key values in an object nested in the redux state

我有以下數據:

Project : {id:10,
           requirements: [{id:1,
                           title:test},
                          {id:2,
                            title:test2}]
          }

action.payload : {id:1,
                  title:changed_title}

我希望在我的 redux 減速器中更新id:1的 object 要求。

這是我到目前為止所擁有的,但它似乎沒有工作並且它超級混亂:

  case 'requirements_update': return (updateObject(state, project: {...state.project , requirements: state.project.requirements.filter(requirement => 
                                                                                                                                            {if(requirement.requirement_id === action.payload.requirement_id)
                                                                                                                                                
                                                                                                                                            return(action.payload) }
                                                                                                                                            })}))

您可以使用 map 和 id check 來更新項目

project : state.project.map(project => project.id === payload.id ? payload : project)

底部的雙重擴展是將當前需求屬性與動作負載合並,(動作負載屬性將具有優先級,因為它們將覆蓋現有的)

case 'requirements_update':
  return {...state, state.project: {...state.project , requirements: state.project.requirements.map(requirement => {
    if (requirement.id === action.payload.id) {
      return {...requirement, ...action.payload}
    } else {
      return requirement
    }
  }}}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM