Добавить или удалить объект из объекта в избыточном состоянии - PullRequest
0 голосов
/ 27 марта 2019

Я новичок в редукторе react-redux, здесь у меня есть объект, который приходит в ответ на вызов API.

Итак, я сохранил его в состоянии как jobList.Теперь объект ответа, который я получил, выглядит следующим образом:

{
   "jdId":"5c987c171251350001330f72",
   "userName":"abc",
   "location":{
      "weightage":1,
      "quickWeightage":1,
      "criteria":"abcc"
   },
   "mustHaveSkills":{
      "technologies":[
         {
            "weightage":0.5,
            "quickWeightage":1,
            "criteria":"OOPS"
         },
         {
            "weightage":0.5,
            "quickWeightage":1,
            "criteria":"OOPS"
         }
      ],
      "functionalSkills":[
         {
            "weightage":0.5,
            "quickWeightage":1,
            "criteria":"OOPS"
         },
         {
            "weightage":0.5,
            "quickWeightage":1,
            "criteria":"OOPS"
         },
         {
            "weightage":0.5,
            "quickWeightage":1,
            "criteria":"OOPS"
         },

      ]
   },
   "shouldHaveSkills":{
      "technologies":[
         {
            "weightage":0.35,
            "quickWeightage":0.7,
            "criteria":"C"
         },
         {
            "weightage":0.35,
            "quickWeightage":0.7,
            "criteria":"C"
         }
      ],
      "functionalSkills":[

      ]
   },
   "couldHaveSkills":{
      "technologies":[

      ],
      "functionalSkills":[

      ]
   },
   "goodToHaveSkills":{
      "technologies":[
         {
            "weightage":0.25,
            "quickWeightage":0.5,
            "criteria":"XAMARIN"
         }
      ],
      "functionalSkills":[

      ]
   }
}

Теперь, здесь я уже написал несколько действий, которые похожи на:

export const add(obj, type) {   
    return {
       type: ADD_DATA,
       payload: obj
    }
}

Теперь, в редукторе:

 case ADD_DATE : {

// Here I want to update this object which is having a an object for the 
 //mustHaveSkills which is an key with array of objects. and I want to add that new object in this array. I also have the type as this key has two arrays in it which to be updated.
}

Теперь, здесь, я передаю объект, который будет обновлен как

{
  "weightage": 0.5,
  "quickWeightage": 1,
  "criteria": "OOPS"
}

как Technology, и я написал отдельные действия для четырех ключей, которые должны бытьобновлено.Так, например, мне нужно обновить mustHaveSkills.

Итак, как я могу обновить этот конкретный объект в состоянии редуктора?Любая помощь будет полезна.Спасибо.

1 Ответ

0 голосов
/ 27 марта 2019

Если вы хотите обновить technologies раздел mustHaveSkills, вы можете сделать как

case ADD_DATA: 

    return {
        ...state,
        mustHaveSkills: {
            ...state.mustHaveSkills,
            technologies: [...mustHaveSkills.technologies, action.payload],
        }
    }

Учитывая тот факт, что action.payload содержит эти данные

{
    "weightage": 0.5,
    "quickWeightage": 1,
    "criteria": "OOPS"
}

А также с предположением, что state структура объекта похожа на объект ответа, который вы опубликовали.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...