我可以将这些选定的过滤器存储在变量中吗?
Can I store these selected filters in a variable?
是否可以将这些选定的过滤器存储在一个变量中,并在用户选择另一组过滤器时更新它?如果可以,怎么做?
Codesandbox:https://codesandbox.io/s/muidatatables-custom-toolbar-forked-lrbf16
为此,您可以使用 onFilterChange
回调,如下所示:
const options = {
...
onFilterChange: (column, filterList, type) => {
const selectedFilters = this.extractFilters(filterList);
console.log(selectedFilters);
}
}
每次过滤器列表更改时都会调用此函数。
然后,您声明函数 extractFilters
,它将从传递的 filterList
中提取所有选定的过滤器,并且它将 return 包含所有选定过滤器的数组对象:
extractFilters = (filterList) => {
let selectedFilters = [];
filterList.forEach((filter) => {
if (filter.length > 0) {
selectedFilters.push(...filter);
}
});
return selectedFilters;
};
您可以将此数组存储在状态中。
Here 是工作示例。
是否可以将这些选定的过滤器存储在一个变量中,并在用户选择另一组过滤器时更新它?如果可以,怎么做?
Codesandbox:https://codesandbox.io/s/muidatatables-custom-toolbar-forked-lrbf16
为此,您可以使用 onFilterChange
回调,如下所示:
const options = {
...
onFilterChange: (column, filterList, type) => {
const selectedFilters = this.extractFilters(filterList);
console.log(selectedFilters);
}
}
每次过滤器列表更改时都会调用此函数。
然后,您声明函数 extractFilters
,它将从传递的 filterList
中提取所有选定的过滤器,并且它将 return 包含所有选定过滤器的数组对象:
extractFilters = (filterList) => {
let selectedFilters = [];
filterList.forEach((filter) => {
if (filter.length > 0) {
selectedFilters.push(...filter);
}
});
return selectedFilters;
};
您可以将此数组存储在状态中。
Here 是工作示例。