You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用React-table的useFilters基于非展示元数据实现表格行过滤

使用useFilters基于未展示字段过滤表格数据的实现方案

react-table 的 useFilters 过滤逻辑仅依赖列配置和原始数据集,和列是否渲染到表格视图没有关联,不需要手动渲染隐藏DOM实现,按照以下步骤配置即可:

  • 首先在列配置中新增用于过滤的隐藏字段配置,和普通展示列一样配置过滤规则,不需要配置表头渲染内容:
const columns = [
  // 原有展示列
  {
    Header: '标题',
    accessor: 'title'
  },
  {
    Header: '作者',
    accessor: 'author'
  },
  // 新增仅用于过滤的category列配置
  {
    accessor: 'category',
    // 按需配置过滤规则,内置支持equals、text、exactText等,也可自定义过滤函数
    filter: 'equals'
  }
]
  • 初始化表格实例时,通过hiddenColumns配置标记需要隐藏的过滤字段,react-table会自动跳过这些列的渲染,无需额外加样式隐藏:
import { useTable, useFilters } from 'react-table'

const tableInstance = useTable(
  {
    columns,
    data,
    // 标记category列为隐藏列,不会渲染到表格视图
    hiddenColumns: ['category']
  },
  useFilters
)

// 取出过滤操作方法
const { setFilter } = tableInstance
  • 直接调用setFilter方法操作隐藏字段的过滤规则即可,用法和展示列完全一致:
// 过滤出所有分类为math的行
setFilter('category', 'math')

// 清空category字段的过滤条件
setFilter('category', undefined)

如果需要自定义过滤逻辑,直接给隐藏列的filter属性传入自定义过滤函数即可,和普通展示列的自定义过滤规则配置没有任何差异。

内容的提问来源于stack exchange,提问作者Aaron

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.16 20:15:03