求助:Redux选择器-计算两个选择器返回值之间的差

时间:2020-03-30 09:15:20

标签: javascript react-redux

底部的解决方案

我有一个下拉菜单,从中选择一个元素-下拉菜单中将不再提供该元素。

我从api中获取可用产品,并将它们存储在redux中-与所选产品相同。

我想做的是拥有一个包含所有产品的数组(完成),所选产品的数组(完成)以及正在显示在前端的数组是所有产品的列表,过滤出元素在两个数组中。

如果我在组件中进行计算,则仅在重新安装组件后才能起作用。

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重新选择

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

我真正想念的是三元,这就是为什么它不会更新的原因。

0 个答案:

没有答案