SwiftUI:ForEach筛选器布尔值

我正在与 ForEach 拼命尝试只显示具有值 true 的内容。无论我尝试什么,都会显示 false。现在空气出来了,我认为它是如此简单,我只是看不到它。这里是一段代码,它应该适用于:

我正在与 ForEach 拼命尝试只显示具有值 true 的内容。无论我尝试什么,都会显示 false。现在空气出来了,我认为它是如此简单,我只是看不到它。这里是一段代码,它应该适用于:

import SwiftUI
struct txt: Identifiable {
    var id: Int
    var text: String
    var show: Bool
}
struct ContentView: View {
    @State private var array = [
        txt(id: 000, text: "True", show: true),
        txt(id: 001, text: "True", show: true),
        txt(id: 002, text: "True", show: true),
        txt(id: 003, text: "False", show: false),
        ]
    var body: some View {
        NavigationView {
            List {
                ForEach(array.indices, id: \.self) { idx in
                   Text("\(self.array[idx].text)")
                }
            }
        }
    }
}
3

改变你的ForEach像这样:

ForEach(array) { arr in
     if arr.show {
         Text("\(arr.text)")
     }
}
3
List(array.filter { $0.show }){ (item) in
    Text(item.text)
}

更新:

let ids = [0,2]
let filteredItems = array.filter { ids.contains($0.id)}

为您提供仅两个项目的筛选集合,其中 Element.id = = 0 或 Element.id = =2

array.filter {$0.show} 是三个项目的集合,其中 Element.show = = true

您可以将其用作数据源

List(array.filter { ids.contains($0.id) }){ (item) in
    Text(item.text)
}

,它将为其每个源集合生成一个文本

这两个条件(或更多)可以根据需要应用任何逻辑运算符

本站系公益性非盈利分享网址,本文来自用户投稿,不代表码文网立场,如若转载,请注明出处

(864)
ssh脚本返回 255错误
上一篇
FastAPI中的会话
下一篇

相关推荐

发表评论

登录 后才能评论

评论列表(11条)