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

React中如何为Antd Table的filters筛选项配置多个匹配值

Antd Table 单筛选选项多值匹配实现方案

该需求完全可以实现,核心调整filters配置的value字段格式与onFilter匹配逻辑即可,具体操作如下:

修改思路

  • 将需要多值匹配的筛选项value从拼接字符串改为数组类型,存放所有需要匹配的目标值
  • 改写onFilter逻辑,针对数组类型的筛选值,校验字段值是否命中数组内任意一项

修改后完整配置代码

{
  title: 'Provider',
  dataIndex: 'provider',
  key: 'provider',
  width: 120,
  filters: [
    { text: 'Firebase', value: 'Firebase' },
    // 单个选项对应多个匹配值,用数组存储
    { text: 'Facebook', value: ['facebook.com', 'faceBook'] },
    { text: 'Google', value: 'Google' },
    { text: 'Password', value: 'password' },
  ],
  onFilter: (filterVal, record) => {
    // 数组类型筛选值走多值匹配逻辑
    if (Array.isArray(filterVal)) {
      // 若需要忽略大小写匹配,可将两边统一转小写后判断:
      // return filterVal.some(val => val.toLowerCase() === record.provider?.toLowerCase())
      return filterVal.includes(record.provider)
    }
    // 单值场景走原有匹配逻辑
    return record.provider.includes(filterVal)
  },
  ellipsis: true,
}

效果参考

筛选UI截图

额外说明

如果你的record.provider字段本身也是多值数组,只需将匹配逻辑调整为两个数组取交集,判断是否存在公共值即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 10:54:02