Sobes.tech
Junior — Middle

Hoe implementeer je het doorgeven van een teller in een View-component binnen een lijst zodat de waarde ervan van buitenaf kan worden bijgewerkt?

sobes.tech AI

Antwoord van AI

In iOS, als je SwiftUI gebruikt, om een teller door te geven aan een View-component en deze van buitenaf bij te werken, moet je gegevensbinding gebruiken via @Binding of toestand via @State en @ObservedObject.

Bijvoorbeeld, als je een lijst hebt en elk element een teller moet tonen die van buitenaf wordt bijgewerkt, kun je het zo doen:

import SwiftUI

class CounterModel: ObservableObject {
    @Published var count: Int = 0
}

struct CounterView: View {
    @ObservedObject var counter: CounterModel

    var body: some View {
        Text("Count: \(counter.count)")
    }
}

struct ContentView: View {
    @StateObject var counter = CounterModel()

    var body: some View {
        VStack {
            List(0..<5) { _ in
                CounterView(counter: counter)
            }
            Button("Increment") {
                counter.count += 1
            }
        }
    }
}

Hier is CounterModel de waarheid voor de teller. Alle CounterView krijgen een verwijzing naar hetzelfde object en worden bijgewerkt bij verandering van de waarde. Op deze manier wordt een externe update van de teller (bijvoorbeeld via een knop) weergegeven in alle lijstcomponenten.

Als elk element zijn eigen teller moet hebben, kun je aparte modellen of waarden doorgeven met @Binding.