реагировать на собственный массив обновлений объектов в редукторе - PullRequest
0 голосов
/ 14 июля 2020

В моем собственном приложении реакции у меня есть элемент в таком состоянии

var data = [
{
   "ChildFirstName":"Cgi",
   "ChildLastName":"I-Cgi",
   "ChildKey":"aff5749a-84cf-43a0-a477-8cc47e0c49c5",
   "LstParentInfo":[
      {
         "ParentKey":"14338e45-8759-45e7-1358-59528e2a7cde",
         "ParentFirstName":"Tahir Mahmood",
         "ParentLastName":"Khawaja",
         "ParentEmail":"",
         "ParentMobile":"",
         "ParentAddress":"Tøyengata 1, 0190 Oslo",
         "IsSelected":false
      },
      {
         "ParentKey":"13736d0d-8764-05aa-de4a-d1aaeb087cc8",
         "ParentFirstName":"Suayip",
         "ParentLastName":"Eryigit",
         "ParentEmail":"",
         "ParentMobile":"",
         "ParentAddress":"Stovner Senter 18, 0985 Oslo",
         "IsSelected":false
      }
   ]
}
];

Пользователь нажимает на родительский элемент, и я хочу установить для него значение IsSelected:! IsSelected. Я пробую это в своем редукторе, например

case ActionTypes.UPDATE_SELECTED_CLASS_LIST:
  var parent = action.parent;
  var classList = [...state.classList];


  const childToBeUpdated = classList.find((i) =>
    i.LstParentInfo.filter((k) => k.ParentKey == parent.ParentKey)
  );


  const parentToBeUpdated = childToBeUpdated.LstParentInfo.find(
    (k) => k.ParentKey == parent.ParentKey
  );
  parentToBeUpdated.IsSelected = !parentToBeUpdated.IsSelected;


 var data = updateObject(classList, { [0]: childToBeUpdated });
  
 classList = Object.values(childToBeUpdated);
  

  console.log("[Update_Class_final]", data);

  return {
    ...state,
    classList: classList,
  };

export const updateObject = (oldObject, updatedProperties) => {
 return {
...oldObject,
...updatedProperties,
};
};

, но это не работает, может ли кто-нибудь помочь мне обновить состояние?

...