为啥搜索过滤器的工作级别太高?

Posted

技术标签:

【中文标题】为啥搜索过滤器的工作级别太高?【英文标题】:Why is Search filter working a level too high?为什么搜索过滤器的工作级别太高? 【发布时间】:2019-10-26 15:29:01 【问题描述】:

我的 coreData 驱动列表工作正常,但 searchBar 没有在正确的级别工作,它正在搜索更高的级别? 所以...而不是过滤列表中的名称,它似乎专注于数据模型本身的名称...而不是我预期的模型中的内容。

我想我可能需要在第一个语句的下方添加一个额外的 ForEach 语句,但我无法让它工作。

WIP 项目在这里https://github.com/my4paws/DogBiz-swiftui

List 
    ForEach(self.dogListVM.dogs.filter 
        self.searchTerm.isEmpty ?
        true :
        "\($0)".localizedCaseInsensitiveContains(self.searchTerm)
     , id: \.dogName)  dog in

     // I need to drill down a level here for searchbar to function...How???
     // ATM search is only filtering the name of the model (ie: DogViewModel) NOT the contents of that model
     // The List cells are already displayed correctly

     NavigationLink(destination:DogView(dog: dog)) 
         HStack
             // List cell code here works already!
         

因为列表单元格在使用此代码时应该已经正常工作,所以我希望搜索在同一级别上工作。但事实并非如此。

【问题讨论】:

【参考方案1】:

变化

"\($0)".localizedCaseInsensitiveContains(self.searchTerm)

$0.dogName.localizedCaseInsensitiveContains (self.searchTerm)

修复了问题。

【讨论】:

以上是关于为啥搜索过滤器的工作级别太高?的主要内容,如果未能解决你的问题,请参考以下文章

在 R 中使用 dplyr 进行过滤时,为啥过滤掉的变量级别会保留在过滤后的数据中? [复制]

如何在弹性搜索的过滤器聚合中引用多个嵌套级别?

使用 WPF MVVM 过滤数据网格,它可以工作,但我不知道为啥

为啥我在 vue.js 中的自定义搜索过滤器不起作用?

Sharepoint 2010列表视图阈值和项级别权限

搜索过滤器,我应该做客户端还是服务器端?