底部的解决方案
我有一个下拉菜单,从中选择一个元素-下拉菜单中将不再提供该元素。
我从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
)
);
我真正想念的是三元,这就是为什么它不会更新的原因。