我有一个动态的SwiftUI列表,它使用州的枚举来填充.然后,它在我的数据字典中循环查找状态匹配以显示数据.所有这些都运行得很完美.我想要做的,但却苦苦挣扎的是隐藏那些空虚的状态.

有问题的代码部分是:

@State private var bucketList: [BucketListItems] = []
...
List {
    ForEach(USStates.allCases) { states in
        Section {
            ForEach (bucketList) { item in
                if (item.state == states.abrev) {
                    NavigationLink(destination: ItemDetails(blItem: item.recordID)) {
                        Label(item.name, systemImage: item.monogram)
                                    .frame(height: 50)
                            .foregroundColor(item.completedate=="0000-00-00" ? .white : .red)
                    }
                }
            }
        } header: {
            Text(states.rawValue)
        }
    }
}

当一个州没有匹配项时,我希望隐藏整个部分.

一些附加的相关代码:

struct BucketListItems: Encodable, Decodable, Identifiable, Hashable {
    let id = UUID()
    var recordID: Int
    var url: String
    var user: Int
    var name: String
    var category: String
    var state: String
    var latitude: String
    var longitude: String
    var description: String
    var completedate: String
}

推荐答案

由于您没有显示最小的示例代码(即,我们必须猜测USStates.allCases是多少,等等),

假设states[String]类型,您可以try 这些方法.

一种是测试Section之前的状态,比如:

 if !bucketList.filter({states.contains($0.state)}).isEmpty {
     Section { ....

 }
 

另一种方法是在ForEach中进行过滤,例如:

 ForEach(bucketList.filter({states.contains($0.state)})) { item in
    // ...
 }

Ios相关问答推荐

SWIFT根据地球坐标修改 node 旋转

从后台线程调用DispatchObject的方法安全吗?

在flutter中使用flatter_screenutil这样的软件包的目的是什么?

在最新版本的 iOS 中,设备上的Localized.strings文件发生了什么变化?

如何链式设置 AttributeContainer 的 UIKit 属性?

SwiftUI 故障/错误 - 在 LazyVStack 和 ScrollView 中使用 AVPlayer 时状态栏不显示

表视图(SwiftUI)中的多列?

SwiftUI - TextField - 在焦点上清除 Double 类型的值,在取消 Select 时恢复

无法在 CollectionView 中禁用部分弹跳 - 组合布局

如何在字段包含字典数组的firestore上查询?

我们可以在 Swift 中将 struct 中的 Codable 键设置为不区分大小写吗

在 iOS 编程中使用 Storyboard 代替 xib 文件有什么好处?

ios 崩溃 EXC_BAD_ACCESS KERN_INVALID_ADDRESS

在 iOS 8 中显示相机权限对话框

用 PC 调试 ipad safari

iOS SDK - 以编程方式生成 PDF 文件

UINavigationBar - 以编程方式设置标题?

如何删除UITableView中最后一个单元格的最后一个边框?

更新字段时,UITextField值已更改未触发

如何为 iOS 13 的 SF Symbols 设置权重?