我找不到如何在 SwiftUI 的选择器视图中添加某些元素,在我的示例中,我想在单击按钮时在选择器中添加“Z”值。
struct ContentView: View {
@State var values: [String] = ["A", "B", "C"]
@State private var selectedValue = 0
var body: some View {
NavigationView {
Form {
Section {
Picker(selection: $selectedValue, label: Text("Value")) {
ForEach(0 ..< values.count) {
Text(self.values[$0])
}
}
}
Button(action: {
self.values.append("Z")
}, label: {
Text("Add")
})
}.navigationBarTitle("Select a value")
}
}
当我单击按钮时,Z 将添加到“值”数组中,但选择器不会刷新。
谢谢 :)
您必须通过以下方式识别价值观id
让 SwiftUI 能够检测到它的变化:
ForEach(0 ..< self.values.count, id: \.self) {
Text(self.values[$0])
}
这样 SwiftUI 就知道它应该在更改时重建选择器。
Tip:您可以像这样直接使用元素:
ForEach(values, id: \.self) {
Text($0)
}
不要忘记更改selectedValue
与数据源匹配的类型和值IF您遵循了上面的提示:
@State private var selectedValue = "A"
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)