Filter 当带有过滤器选项的ForEach在Swiftui中未显示结果时,如何显示文本?

Filter 当带有过滤器选项的ForEach在Swiftui中未显示结果时,如何显示文本?,filter,foreach,swiftui,Filter,Foreach,Swiftui,我正在努力解决以下问题。我用ForEach循环创建了一个“看起来像列表”的列表。这很好,但不是一个问题。在最后一个ForEach循环中,如果数据库“values”中没有结果,我想以文本形式给出一个结果。因此,如果ForEach循环没有通过,因为没有数据库集,那么我想给出一个文本结果,说“0€” 你有什么想法吗 代码如下: ForEach(categories.filter({ (categories) -> Bool in categories.inOrOutCateg

我正在努力解决以下问题。我用ForEach循环创建了一个“看起来像列表”的列表。这很好,但不是一个问题。在最后一个ForEach循环中,如果数据库“values”中没有结果,我想以文本形式给出一个结果。因此,如果ForEach循环没有通过,因为没有数据库集,那么我想给出一个文本结果,说“0€”

你有什么想法吗

代码如下:

ForEach(categories.filter({ (categories) -> Bool in
          categories.inOrOutCategory_ID == 1 }), id: \.category_ID) { categoryIndex in
            Section(header: Text("\(categoryIndex.category)")) {
              ForEach(subCategories.filter({ (subCategories) -> Bool in
                subCategories.category_ID == categoryIndex.category_ID }), id: \.subCategory_ID) {
                  subCategoryIndex in
                  HStack {
                    Text("\(subCategoryIndex.subCategory)").padding(.leading)
                    Spacer()
                    ForEach(values.filter({ (values) -> Bool in
                      values.subCategory_ID == subCategoryIndex.subCategory_ID && (values.month_ID == self.month && (values.year == self.year)) }), id: \.value_ID) { valueIndex in
                        
                        Text("\(String(format: "%.2f", valueIndex.value))€").padding(.trailing)
                    }
                  }
              }
            }
        }.padding(.leading)

非常感谢

我今天遇到了同样的问题,解决方案是创建一个方法,该方法可以是true或false,手动检查过滤器的条件,然后有必要在swiftUI中创建视图,如果该方法返回false(无结果),则会显示该视图例如,在视图中显示文本或任何您想要的内容,但没有结果

例如:

func searchResult() -> Bool {
    if searchText == "" {
        return true // ne s'affiche pas
    }
    for u in subscribers{
        if u.firstname.contains(searchText){
             return true
        }
        if u.lastname.contains(searchText){
            return true
        }
    }
    return false // s'affiche
}
在您看来:

                if !searchResult() {
                    Text("test")
                }