如何访问使用 ForEach 制作的列表中特定项目的值?如您所见,我正在尝试这样的事情(以及许多其他选项):
文本(项目 [2].onOff ?“开”:“关”)
我想检查第二个列表项的切换值(例如)并更新屏幕上的文本,说明它是打开还是关闭。
而且我知道这与@Binding 有关,我正在搜索这方面的示例并尝试了一些事情,但我无法让它发挥作用。也许这是一个初学者的问题。如果有人可以帮助我,我将不胜感激。
我的内容视图:
struct ContentView: View {
// @Binding var onOff : Bool
@State private var onOff = false
@State private var test = false
var body: some View {
NavigationView {
List {
HStack {
Text("Is 2nd item on or off? ")
Text(onOff ? "On" : "Off")
// Text(item[2].onOff ? "On" : "Off")
}
ForEach((1...15), id: \.self) {item in
ListItemView()
}
}
.navigationBarTitle(Text("List"))
}
}
}
和 ListItemView:
import SwiftUI
struct ListItemView: View {
@State private var onOff : Bool = false
// @Binding var onOff : Bool
var body: some View {
HStack {
Text("99")
.font(.title)
Text("List item")
Spacer()
Toggle(isOn: self.$onOff) {
Text("Label")
}
.labelsHidden()
}
}
}