[英]How to apply a filter only if one of the checkboxes is clicked using react and typescript?
[英]how to apply filter in list using react
我做了一個演示應用程序。 其中我有幾個類別的例子,比如手表、牛仔褲等
我想在單擊任何類別時應用過濾器。 換句話說,我想展示所選類別的產品。
這是我的 代碼
腳步
但我的問題是我每次都在整個列表中迭代。 有沒有更好的辦法?
useEffect(() => { let fArr = state.filter(i => filterArray.indexOf(i.category);= -1); setProductState(fArr), }; [filterArray]);
選擇的任何過濾器
const onItemClickHandler = item => {
setFilterArray([...filterArray, item]);
};
錯誤或任何更好的方法
每當我應用任何過濾器時,我都會一次又一次地迭代整個列表任何更好的方法。 實際上目前我只有100 個產品。假設它是100,000 個產品,我將在100,000 個中一次又一次地迭代。
有什么更好的方法嗎?
如果你有幾千條以上的數據,最好將你所有的數據分組到map,然后你只需要使用key來檢索它們。
Map 數據分類:
var data = filterArray.reduce((x,v) => {
(x[v.category] = x[v.category] || []).push(v)
return x
}, {});
如果你select這個類別,可以更快的獲取數據
var result = data[category_key];
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.