Отфильтруйте массив элементов магазина для дубликатов - PullRequest
0 голосов
/ 26 сентября 2018

У меня есть следующий редуктор:

case INIT:
  return {
    ...state,
    items: [...state.items, ...action.payload],
  };

Мне нужно как-то проверить, являются ли в массиве state.items элементы из массива action.payload и не включать их в state.items.У меня есть такой код:

[...state.items.filter(item => item !== action.payload)],

, но это не то, что мне нужно, это не работает.Кто-нибудь может мне помочь?

Ответы [ 2 ]

0 голосов
/ 26 сентября 2018

Самый простой способ справиться с этим примитивными типами - использовать Set:

case INIT:
    return {
        ...state,
        items: [...new Set(state.items.concat(action.payload))],
    }
0 голосов
/ 26 сентября 2018

Вы должны отфильтровать payload.

case INIT:
      const { items } = state;
      const newItems = action.payload.filter(item => !items.includes(item))]
      return {
        ...state,
        items: items.concat(newItems),
      }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...