Angular Material 带有字符串数组的数据源过滤器

Angular Material dataSource filter with array of string

我在我的 Angular 项目中使用 Material table。

有过滤字符串的规定,它工作得很好

myData: UserData[]; // Imagine its initialized
dataSource = new MatTableDataSource(myData);

applyFilter(filterValue: string)
{
  this.dataSource.filter = filterValue
}

现在,我想用字符串数组进行过滤,但它不起作用。

myData: UserData[]; // Imagine its initialized
dataSource = new MatTableDataSource(myData);

applyFilter(filteredValues: string[])
{
  this.dataSource.filteredData = filteredValues
}

低于错误

Type 'String[]' is not assignable to type 'UserData[]'.
Type 'String' is not assignable to type 'UserData'.

要能够从 String[] 类型的数据源中进行过滤,您必须指定一个过滤谓词。

this.dataSource.filterPredicate = (data: String, filter: string) => {
    return data.includes(filter);
};

现在 return 所有包含 'filterValue' 的字符串。