[英]How to render updated list after updating a filter
Whenever, user is checking the checkbox, the factoryQuery
array is getting updated.每当用户选中复选框时,
factoryQuery
数组都会更新。 Search function is for filtering procurements
array.搜索 function 用于过滤
procurements
数组。 I want the ProcurementList
component to call search whenever factoryQuery is getting changed.我希望
ProcurementList
组件在 factoryQuery 发生更改时调用搜索。
Search Function:搜索 Function:
const search = () => {
if(factoryQuery.length != 0){
return procurements.filter(
(procurement) =>
factoryQuery.includes(procurement.data.factory_name.toLowerCase()));
} else {
return procurements;
}
};
Function called on checking a checkBox Function 调用检查复选框
const handleCheck = (e) => {
var array = factoryQuery;
if(e.target.checked){
array.push(e.target.value.toLowerCase());
}else{
if(array.indexOf(e.target.value.toLowerCase()) != -1){
array.splice(array.indexOf(e.target.value.toLowerCase()), 1);
}
}
setFactoryQuery(array);
}
Component to render Procurements List:渲染采购列表的组件:
<ProcurementsList procurements={search(procurements)} />
You should call the search method inside a useEffect hook and add factoryQuery in dependency array, that way it rerenders everytime factoryQuery changs您应该在 useEffect 挂钩中调用 search 方法并将 factoryQuery 添加到依赖数组中,这样每次 factoryQuery 更改时都会重新呈现
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.