我正在使用多过滤器的react 和还原复选框.在以下情况下如何添加额外的价格筛选逻辑:
-
价格范围不到250
-
价格范围在251到450之间
-
价格范围大于450
以下是减滤器的代码.try 了If Else条件,但问题是如果单击多个复选框则不起作用
case actionTypes.FILTER_PRODUCT:
const searchParameters = data && Object.keys(Object.assign({}, ...data));
let filterData;
console.log('test',action.payload);
const searchQuery = action.payload.map((val) => val.toLowerCase());
const getItemParam = (item, parameter) =>
(item[parameter] ?? "").toString().toLowerCase();
if (action.payload.length === 0) {
filterData = state.products;
}
else if(action.payload.includes('0-Rs250')){
filterData = state.products.filter((item) => {
return item.price <= 250
})
}
else if(action.payload.includes('Rs251-450')){
data = state.products.filter((item) => {
return item.price > 250 && item.price <= 450
})
}else if(action.payload.includes('Rs 450')){
filterData = state.products.filter((item) => {
return item.price > 450
})
}
else {
filterData = state.products.filter((item) => {
return searchParameters.some((parameter) => {
const itemParam = getItemParam(item, parameter);
return searchQuery.some(
(color) => itemParam === color)
});
});
}
console.log('test1',filterData);
return {
...state,
filteredData: filterData,
};