【问题标题】:How to update certain key values in an object nested in the redux state如何更新嵌套在 redux 状态中的对象中的某些键值
【发布时间】:2020-07-12 09:06:02
【问题描述】:

我有以下数据:

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

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

我希望更新id:1 的需求对象 在我的 redux reducer 中。

这是我到目前为止所拥有的,但它似乎没有工作,而且超级混乱:

  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) }
                                                                                                                                            })}))

【问题讨论】:

标签: javascript reactjs redux redux-reducers


【解决方案1】:

您可以使用地图和id检查来更新项目

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

【讨论】:

    【解决方案2】:

    底部的双重扩展是将当前需求属性与动作负载合并,(动作负载属性将具有优先级,因为它们会覆盖现有的)

    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
        }
      }}}
    

    【讨论】:

      猜你喜欢
      • 2018-07-04
      • 2020-07-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-28
      • 2017-08-08
      相关资源
      最近更新 更多