如何过滤与react-table中给定输入完全相等的值?

问题描述 投票:0回答:3

我在这里使用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表:

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',
  },
];
javascript reactjs function react-table
3个回答
4
投票

尝试

{ id: 'your_column_id', 访问者:'your_accessor', 过滤器:“等于”, }


2
投票

在相应的列对象中尝试此操作:

 {
    id: 'your_column_id',
    accessor: 'your_accessor',
    filter: (rows, id, filterValue) =>
      rows.filter((row) => filterValue === '' || row.values[id] === filterType)
 }

0
投票

对于 tanstack/react-table v8 只需添加列定义:

{
  accessorKey: "test",
  header: "test",
  filterFn: "equals",
},
© www.soinside.com 2019 - 2024. All rights reserved.