Решено: Redux селектор - вычисление разницы между двумя значениями, возвращаемыми селектором - PullRequest
0 голосов
/ 30 марта 2020

РЕШЕНИЕ внизу

У меня есть раскрывающееся меню, и когда я выбираю из него элемент - он больше не должен быть доступен в раскрывающемся списке.

I Извлекайте из доступных продуктов API, сохраняйте их в избыточном количестве - то же самое с выбранными продуктами.

Я хочу сделать так, чтобы у меня был массив всех продуктов (выполнено), массив выбранных продуктов (выполнено) и Массив, который отображается во внешнем интерфейсе, представляет собой список всех продуктов, отфильтровывающих элементы в обоих массивах.

Если я выполняю вычисления в компоненте, он работает только после перемонтирования компонента.

const productsAvailable = state => state.products.allProducts;
const productsChosen = state =>state.newproducts.allProducts;

вычисление, которое я делаю:

  const productsToChoseFrom =
    productsAvailable &&
    productsAvailable.filter(
      el =>
        productsChosen &&
        !productsChosen.map(product => product).includes(el)
    );

Как бы я сделал это вычисление в селекторе?

// ответ - использование creteSelector из reselect

const productsToChoseFrom = createSelector(
  productsAvailable,
  productsChosen,
  (productsOff, productsRendere) =>
    productsOff &&
    productsOff.filter(el =>
      productsRendere
        ? !productsRendere.map(cycle => cycle.interval).includes(el)
        : productsOff
    )
);

то, что я на самом деле упустил, это троичный, поэтому он не обновится ..

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