Добавление новых объектов в массив в Redux

Рейтинг: 0Ответов: 1Опубликовано: 05.07.2023

В payload приходит массив с объектами у которых есть общий индентификатор.

Не получается проверить, есть ли такие объекты в стейте. если нет то добавить в текущее состояние стейта, есть присутствуют, то игнорировать их

  case GET_COMMENTS_SUCCESS:
      let comarr = state.comments.some(
        (item: CommentsType) => item.postId === payload
      );
      if (!comarr) {
        state = {
          ...state,
          comments: [...state.comments, ...payload],
          loadingComments: false,
        };
      } else {
        state = {
          ...state,
          comments: payload,
          loadingComments: false,
        };
      }

      break;

Ответы

▲ 0

решил сам, надо было сделать проверку по индексу

  case GET_COMMENTS_SUCCESS:
      let comarr = state.comments.some(
        (item: CommentsType) => item.postId === **payload.indexOf(item.postId)**
      );
      if (!comarr) {
        state = {
          ...state,
          comments: [...state.comments, ...payload],
          loadingComments: false,
        };
      } else {
        state = {
          ...state,
          comments: payload,
          loadingComments: false,
        };
      }

      break;