SwiftUI list refresh does not work funktioniert nicht

VonTobias Stephan

SwiftUI list refresh does not work funktioniert nicht

Ich hatte das Problem, dass sich die Liste schlichtweg nicht aktualisiert hat. Alle Versuche die Liste dazu zu bringen, sich zu verändern, wenn sich ein Wert des Arrays ändert, führte leider nicht zum Erfolg. Auch ein kompletter Reload des Arrays war nicht zielführend. Für die SwiftUI List habe ich diese Klasse ListDataSource als Observerable Object eingerichtet. Eigentlich hätte sich die Liste bei Änderung eines Wertes im Array ListOfListEntries automatisch alles ändern müssen, also ein Refresh hätte stattfinden sollen. Dem war aber nicht so. Nach langem Suchen war es nur eine Kleinigkeit – nämlich das @Published hat gefehlt. Ich hoffe denjenigen damit geholfen zu haben, die sich damit auch gerade die Finger “brechen”.

class ListDataSource: ObservableObject {
    //Nicht mehr erforderlich?
    //let didChange = PassthroughSubject<ListDataSource, Never>()
    let didChange = PassthroughSubject<Void, Never>()

   @Published var ListOfListEntries = [oListEntryFields]() //{
        //didSet { didChange.send() }

    //}
    var ListOfGroups = [oListGroups]()
    let oListoryParser = ListoryXMLParser()
    let defaults = UserDefaults.standard

    var ActiveListKey : String = ""
    var ActiveGroupKey : String = ""
    var ActiveListTitle : String = ""
    var ActiveGroupTitle : String = ""

    init() {
        reload()
        didChange.send()
    }
}

Über den Autor

Tobias Stephan administrator

Schreibe eine Antwort