如何在react-table中过滤一个正好等于给定输入的值?
How to filter a value exactly equal to a given input in react-table?
我在这里使用了 React table 内置的 setFilter 函数。第二个参数是每个输入类别将与之匹配但不完全匹配的值。例如,如果我们有两个类别政府和非政府,我必须过滤政府。但它正在过滤政府和非政府,因为政府一词出现在非政府一词中。
我现在该怎么办?
const tableInstance = useRef(null);
const filterTests = (criteria) => {
if (tableInstance.current) {
tableInstance.current.setFilter('test_category', criteria.category);
tableInstance.current.setFilter('test_state', criteria.state);
tableInstance.current.setFilter('test_client', criteria.client);
tableInstance.current.setFilter('test_name', criteria.name);
}
};
我正在另一个组件中调用 filterTests table:
const handleFilter = () => {
let criteria = {};
criteria.category = category;
criteria.state = state;
criteria.client = client;
criteria.name = name;
filterTests(criteria);
};
我的列文件的数据是:
export const columns = [
{
id: 'test_name',
Header: 'NAME',
accessor: 'name',
},
{
id: 'candidate_site_blocked',
Header: `BLOCK
CANDIDATE SITE
REGISTERATION`,
accessor: 'block_candidate_site_registration',
},
{
id: 'admin_site_blocked',
Header: `BLOCK
ADMIN SITE
REGISTERATION`,
accessor: 'block_admin_site_registration',
},
{
id: 'delete_test',
Header: '',
},
{
id: 'test_category',
accessor: 'category',
},
{
id: 'test_state',
accessor: 'state',
},
{
id: 'test_client',
accessor: 'client',
},
];
在相应的列对象中试试这个:
{
id: 'your_column_id',
accessor: 'your_accessor',
filter: (rows, id, filterValue) =>
rows.filter((row) => filterValue === '' || row.values[id] === filterType)
}
尝试
{
编号:'your_column_id',
存取器:'your_accessor',
过滤器:'equals',
}
我在这里使用了 React table 内置的 setFilter 函数。第二个参数是每个输入类别将与之匹配但不完全匹配的值。例如,如果我们有两个类别政府和非政府,我必须过滤政府。但它正在过滤政府和非政府,因为政府一词出现在非政府一词中。 我现在该怎么办?
const tableInstance = useRef(null);
const filterTests = (criteria) => {
if (tableInstance.current) {
tableInstance.current.setFilter('test_category', criteria.category);
tableInstance.current.setFilter('test_state', criteria.state);
tableInstance.current.setFilter('test_client', criteria.client);
tableInstance.current.setFilter('test_name', criteria.name);
}
};
我正在另一个组件中调用 filterTests table:
const handleFilter = () => {
let criteria = {};
criteria.category = category;
criteria.state = state;
criteria.client = client;
criteria.name = name;
filterTests(criteria);
};
我的列文件的数据是:
export const columns = [
{
id: 'test_name',
Header: 'NAME',
accessor: 'name',
},
{
id: 'candidate_site_blocked',
Header: `BLOCK
CANDIDATE SITE
REGISTERATION`,
accessor: 'block_candidate_site_registration',
},
{
id: 'admin_site_blocked',
Header: `BLOCK
ADMIN SITE
REGISTERATION`,
accessor: 'block_admin_site_registration',
},
{
id: 'delete_test',
Header: '',
},
{
id: 'test_category',
accessor: 'category',
},
{
id: 'test_state',
accessor: 'state',
},
{
id: 'test_client',
accessor: 'client',
},
];
在相应的列对象中试试这个:
{
id: 'your_column_id',
accessor: 'your_accessor',
filter: (rows, id, filterValue) =>
rows.filter((row) => filterValue === '' || row.values[id] === filterType)
}
尝试
{ 编号:'your_column_id', 存取器:'your_accessor', 过滤器:'equals', }