Menu
Coddy logo textTech

La propriété @State

Fait partie de la section Introduction à SwiftUI du Journey Swift de Coddy. Leçon 20 sur 50.

Le corps d’une vue est recalculé à partir de ses données. Pour avoir des données qui changent, marquez une propriété avec @State. Lorsqu’une propriété d’état change, SwiftUI exécute à nouveau le corps et met à jour l’écran :

struct ContentView: View {
    @State private var count = 0

    var body: some View {
        VStack {
            Text("Count: \(count)")
            Button("Add one") {
                count += 1
            }
        }
    }
}

Chaque appui exécute count += 1, et le texte affiche le nouveau nombre. Vous ne mettez jamais vous-même le texte à jour : le texte est décrit en fonction de count, il suit donc la valeur.

Un var simple dans une vue ne peut pas être modifié depuis son corps, car les vues sont des structures. @State stocke la valeur en dehors de la structure afin qu’elle survive à chaque nouveau rendu. Marquez l’état comme private : il appartient à cette vue.

challenge icon

Défi

Facile

Termine le compteur de tapotements. L’action du bouton est vide : fais en sorte que chaque tapotement ajoute 1 à taps, afin que le texte affiche Taps: 1 après un tapotement et Taps: 2 après deux.

Essayez vous-même

import SwiftUI

@main
struct CoddyApp: App {
    var body: some Scene {
        WindowGroup {
            ContentView()
        }
    }
}
quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Introduction à SwiftUI

Entraînez-vous par vous-même : Playground Swift