React Typescript:Antd 表过滤器

Posted

技术标签:

【中文标题】React Typescript:Antd 表过滤器【英文标题】:React Typescript: Antd Table filter 【发布时间】:2022-01-23 23:24:22 【问题描述】:

当我尝试以下操作时,列中出现错误:


   title: "Gruppe",
   dataIndex: 'group',
   filters: [
      this.state.dropdownItems.map((item) => (
         text: item.group,
         value: item.group
      )
   )],
   onFilter: (value, record) => record.TransactionType.includes(value),
,

错误:*TS2322 (TS) Type '( title: string; dataIndex: string; key: 细绳;宽度:数字;居中对齐”;分拣机:(a:任何,b:任何)=> 数字;过滤器?:未定义; onFilter?:未定义;渲染?:未定义; | 标题:字符串; ... 7 更多 ...;渲染?:未定义; | ...; | ...; | ...; )[]' 不可分配给类型 '列类型'。输入'标题:字符串; 数据索引:字符串;键:字符串;宽度:数字;居中对齐”; sorter: (a: any, b: any) => number;过滤器?:未定义;过滤器?: 不明确的;渲染?:未定义; | 标题:字符串; ... 7 更多 ...; 渲染?:未定义; | ...; | ...; | ...; ' 不是 可分配给类型 'ColumnGroupType | 列类型”。 输入'标题:字符串;数据索引:字符串;宽度:数字;居中对齐”;过滤器:文本:字符串;值:字符串; [][];过滤器: (值:任意,记录:任意)=> 任意;键?:未定义;分拣机?:未定义; 渲染?:未定义; ' 不可分配给类型 '列组类型 | 列类型”。 输入'标题:字符串;数据索引:字符串;宽度:数字;居中对齐”;过滤器:文本:字符串;值:字符串; [][];过滤器: (值:任意,记录:任意)=> 任意;键?:未定义;分拣机?:未定义; 渲染?:未定义; ' 不可分配给类型 '列类型'。 属性“过滤器”的类型不兼容。 输入'文本:字符串;值:字符串; [][]' 不可分配给类型 'ColumnFilterItem[]'。 输入'文本:字符串;值:字符串; []' 缺少类型“ColumnFilterItem”的以下属性:文本,值 *

【问题讨论】:

【参考方案1】:

由于map返回一个新数组,所以现在你定义一个二维数组作为过滤器,它应该是这样的:

filters: [
  ...this.state.dropdownItems.map((item) => (
     text: item.group,
     value: item.group
  )
)]

或者:

filters: this.state.dropdownItems.map((item) => (
     text: item.group,
     value: item.group
  )
)

【讨论】:

以上是关于React Typescript:Antd 表过滤器的主要内容,如果未能解决你的问题,请参考以下文章

typescript+react+antd基础环境搭建

从0搭建React+antd+TypeScript+Umi Hooks+Mobx前端框架

Springboot + mybatis + React+redux+React-router+antd+Typescript: 上线

Springboot + mybatis + React+redux+React-router+antd+Typescript: React+Typescrip项目的搭建

React+TypeScript+H5+Antd-mobile项目搭建

自定义过滤antd表dataSource的子项