No encuentro cómo agregar algún elemento en una vista de selector en SwiftUI, en mi muestra, quiero agregar el valor "Z" en el selector cuando hago clic en el botón.
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")
}
}
Cuando hago clic en el botón, se agrega Z a la matriz de "valores" pero el selector no se actualiza.
Gracias :)
Debe identificar los valores por id
SwiftUI para que sus cambios sean detectables:
ForEach(0 ..< self.values.count, id: \.self) {
Text(self.values[$0])
}
De esta manera, SwiftIU sabe que debería reconstruir el selector al cambiar.
Sugerencia : puede usar elementos directamente como este:
ForEach(values, id: \.self) {
Text($0)
}
No olvide cambiar el selectedValue
tipo y el valor para que coincidan con el origen de datos SI siguió el consejo anterior:
@State private var selectedValue = "A"
Este artículo se recopila de Internet, indique la fuente cuando se vuelva a imprimir.
En caso de infracción, por favor [email protected] Eliminar
Déjame decir algunas palabras