La propiedad @State
Parte de la sección Introducción a SwiftUI del Journey de Swift de Coddy. Lección 20 de 50.
El cuerpo de una vista se vuelve a calcular a partir de sus datos. Para tener datos que cambien, marca una propiedad con @State. Cuando cambia una propiedad de estado, SwiftUI vuelve a ejecutar el cuerpo y actualiza la pantalla:
struct ContentView: View {
@State private var count = 0
var body: some View {
VStack {
Text("Count: \(count)")
Button("Add one") {
count += 1
}
}
}
}Cada toque ejecuta count += 1, y el texto muestra el nuevo número. Nunca actualizas el texto tú mismo: el texto se describe en términos de count, por lo que sigue el valor.
Una var simple en una vista no se puede cambiar desde su cuerpo, porque las vistas son estructuras. @State almacena el valor fuera de la estructura para que sobreviva a cada redibujado. Marca el estado como private: pertenece a esta vista.
Desafío
FácilTermina el contador de toques. La acción del botón está vacía: haz que cada toque sume 1 a taps, de modo que el texto muestre Taps: 1 después de un toque y Taps: 2 después de dos.
Pruébalo tú mismo
import SwiftUI
@main
struct CoddyApp: App {
var body: some Scene {
WindowGroup {
ContentView()
}
}
}Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Introducción a SwiftUI
2Mostrar contenido
Vistas de textoNúmeros en el textoFuentesColoresSF SymbolsRepaso: etiqueta de precio5Estado y botones
BotonesLa propiedad @StateEstado verdadero o falsoVistas condicionalesRepaso: contador de puntuaciónPractica por tu cuenta: Playground de Swift