用途:该技能基于 core、table-features 与 client-vs-server,说明 TanStack Table Core 的列过滤能力。过滤状态、行处理与过滤 UI 被视为相互独立的关注点。
主要能力:通过 columnFilteringFeature 启用列过滤,用 createFilteredRowModel 生成过滤后的行模型,并注册 filterFns(如 filterFn_includesString)。建议按需导入单个 filterFn_* 内置函数,只注册列通过字符串名引用、或 filterFn: 'auto' 需要为对应数据类型解析的函数;完整 filterFns 注册表仍可用,但会打包全部内置函数。
使用方式:用 tableFeatures 组合特性,例如: import { columnFilteringFeature, createFilteredRowModel, filterFn_includesString, tableFeatures } from '@tanstack/table-core' export const features = tableFeatures({ columnFilteringFeature, filteredRowModel: createFilteredRowModel(), filterFns: { includesString: filterFn_includesString } }) 嵌套行可用 filterFromLeafRows: true 与 maxLeafRowFilterDepth: 2,仅在父行应因后代匹配而保留时使用叶优先过滤。
常见错误:不要混用手动与客户端过滤,manualFiltering 为 true 时返回的是未过滤模型,应把过滤状态发给服务端;不要对渲染器输出做过滤,内置字符串与数值过滤器需要可比较的 accessor 值,而非对象或 UI 节点;受控回调 onColumnFiltersChange 可能收到值或函数,需用 functionalUpdate(updater, columnFilters) 处理。
限制:具体签名与自动移除行为需查看 node_modules/@tanstack/table-core/dist/features/column-filtering/ 及 filterFns.d.ts。其余细节暂未提供。