Обновление глубоко вложенных объектов в состоянии с помощью redux

#reactjs #react-redux

Вопрос:

Как я могу обновить глубоко вложенный массив объектов в react и использовать управление состоянием redux. Не знаю, как с этим справиться

 [
   "0":{
       "id": 339,
       "children": [
           {
               "id": 381,
               "children": [
                   {
                       "id": 383,
                       "children": [],
                       "name": "Capability_C",
                       "level": 3,
                   }
               ],
               "name": "Capability_B",
               "level": 2,
           }
       ],
       "name": "Capability_A",
       "level": 1,
   },
   "1":{
       "id": 448,
       "children": [],
       "name": "Capability_Y",
       "level": 1,
   }

] 
 

При создании нового объекта, является ли он родительским или дочерним объектом. Прямо сейчас только родительские объекты обновляются в пределах состояния, но не вложенные объекты. Полезная нагрузка содержит данные одной возможности, которые могут быть вложенными(дочерними) или просто родительским объектом. В то время как «возможности» имеют список, который я привел здесь выше

 
 const capbilityReducer = (capabilities = initialState, action) => {
    const { type, payload } = action;
  
    switch (type) {
 
      case CREATE_CAPABILITY:
        return [...capabilities, payload];
   }
  };
  
  export default capbilityReducer;
 

Комментарии:

1. Я бы предложил переключиться на инструментарий redux, он позволит вам просто перезаписать определенные свойства состояния вместо глубокого слияния. Кроме того, поскольку вы храните объекты домена с ключом id, возможно, вам захочется взглянуть на адаптеры сущностей