我一直在try 为我一直在做的网店项目制作一个类别过滤器.我对Reaction/JavaScript还是个新手,所以我可能遗漏了一些非常明显的东西.
{!loading
? webshopData.categories?.map((item) => {
const filtered = products.filter((obj) =>
item.products.$each.includes(obj._id)
);
return (
<div
className="productsCategorySelector"
onClick={() => setProducts(filtered)}
key={item.name}
>
<p className="label-form productsCategoryLabel">
{item.name}
</p>
</div>
);
})
: null}
当我按下过滤器时,我的产品确实会被过滤,但我需要使用另一个功能来取回我的产品.它们保存在"ProductsUnsorted"钩子/状态中.
{!webshopData.categories && (
<p style={{ marginBottom: 20 }}>All products</p>
)}
<p
className="productsAllShow"
onClick={() => setProducts(productsUnsorted)}
>
All products
</p>
当我点击一个新的过滤器时,我如何总是将我的数组重置为默认值(显示所有产品)?现在,它只是覆盖了我用过滤函数所做的更改,这意味着如果我过滤了同一类别中的产品,它们将不会显示,直到我点击"reset"(productsUnsorted)switch .有没有什么方法可以在过滤之前将数组重置为"默认"状态.另一类?我怎样才能避免在应用了一个过滤器之后"不断改变我的数组"?
我已经在这里坐了几个小时想弄清楚这件事.我试了很多方法,但都不管用.我只是不明白我试图实现的背后的逻辑.