为啥搜索过滤器的工作级别太高?
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 进行过滤时,为啥过滤掉的变量级别会保留在过滤后的数据中? [复制]