我正在与 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)")
}
}
}
}
}

改变你的ForEach
像这样:
ForEach(array) { arr in
if arr.show {
Text("\(arr.text)")
}
}
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)
}
,它将为其每个源集合生成一个文本
这两个条件(或更多)可以根据需要应用任何逻辑运算符
本站系公益性非盈利分享网址,本文来自用户投稿,不代表码文网立场,如若转载,请注明出处
评论列表(64条)