简体   繁体   English

React Typescript:Antd 表过滤器

[英]React Typescript: Antd Table filter

I am getting an error in the columns when I try the following:当我尝试以下操作时,列中出现错误:

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

Error: *TS2322 (TS) Type '({ title: string; dataIndex: string; key: string; width: number; align: "center"; sorter: (a: any, b: any) => number; filters?: undefined; onFilter?: undefined; render?: undefined; } | { title: string; ... 7 more...; render?: undefined; } | {...; } | {...; } | {...; })[]' is not assignable to type 'ColumnsType'.错误:*TS2322 (TS) Type '({ title: string; dataIndex: string; key: string; width: number; align: "center"; sorter: (a: any, b: any) => number; 过滤器? : undefined; onFilter?: undefined; render?: undefined; } | { title: string; ... 7 更多...; render?: undefined; } | {...; } | {...; } | {...; })[]' 不可分配给类型 'ColumnsType'。 Type '{ title: string;输入'{标题:字符串; dataIndex: string;数据索引:字符串; key: string;键:字符串; width: number;宽度:数字; align: "center";居中对齐”; sorter: (a: any, b: any) => number; sorter: (a: any, b: any) => number; filters?: undefined;过滤器?:未定义; onFilter?: undefined; onFilter?:未定义; render?: undefined;渲染?:未定义; } | } | { title: string; {标题:字符串; ... 7 more...; ... 7 更多...; render?: undefined;渲染?:未定义; } | } | {...; {...; } | } | {...; {...; } | } | {...; {...; }' is not assignable to type 'ColumnGroupType | }' 不可分配给类型 'ColumnGroupType | ColumnType'.列类型”。 Type '{ title: string;输入'{标题:字符串; dataIndex: string;数据索引:字符串; width: number;宽度:数字; align: "center";居中对齐”; filters: { text: string;过滤器:{文本:字符串; value: string;值:字符串; }[][]; }[][]; onFilter: (value: any, record: any) => any; onFilter:(值:任意,记录:任意)=>任意; key?: undefined;键?:未定义; sorter?: undefined;分拣机?:未定义; render?: undefined;渲染?:未定义; }' is not assignable to type 'ColumnGroupType | }' 不可分配给类型 'ColumnGroupType | ColumnType'.列类型”。 Type '{ title: string;输入'{标题:字符串; dataIndex: string;数据索引:字符串; width: number;宽度:数字; align: "center";居中对齐”; filters: { text: string;过滤器:{文本:字符串; value: string;值:字符串; }[][]; }[][]; onFilter: (value: any, record: any) => any; onFilter:(值:任意,记录:任意)=>任意; key?: undefined;键?:未定义; sorter?: undefined;分拣机?:未定义; render?: undefined;渲染?:未定义; }' is not assignable to type 'ColumnType'. }' 不可分配给类型 'ColumnType'。 Types of property 'filters' are incompatible.属性“过滤器”的类型不兼容。 Type '{ text: string;输入'{文本:字符串; value: string;值:字符串; }[][]' is not assignable to type 'ColumnFilterItem[]'. }[][]' 不可分配给类型 'ColumnFilterItem[]'。 Type '{ text: string;输入'{文本:字符串; value: string;值:字符串; }[]' is missing the following properties from type 'ColumnFilterItem': text, value * }[]' 缺少类型“ColumnFilterItem”的以下属性:文本、值 *

Since map returns a new array, so now you are defining an 2 dimensional array as filters, it should be like this:由于map返回一个新数组,所以现在定义一个二维数组作为过滤器,它应该是这样的:

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

Or:或者:

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM