Post

Replies

Boosts

Views

Activity

Reply to I wonder swiftdata query cannot be used within a class
// ContentView.swift import SwiftUI import SwiftData @Model class TrackedItem { @Attribute var name: String init(name: String) { self.name = name } } struct ContentView: View { @Query private var items: [TrackedItem] @StateObject var viewModel = ViewModel(items: []) var body: some View { NavigationStack { YourAppView() } .environmentObject(viewModel) .onAppear { viewModel.reloadData(items: items) } .onChange(of: items) { viewModel.reloadData(items: items) } } } // ViewModel.swift import Foundation class ViewModel: ObservableObject { @Published var stuff: String = "Stuff" var items: [TrackedItem] init(items: [TrackedItem]) { self.items = items fetchData() } func reloadData(items: [TrackedItem]) { self.items = items fetchData() } private func fetchData() { stuff = "New stuff" } }
Dec ’24
Reply to I wonder swiftdata query cannot be used within a class
// ContentView.swift import SwiftUI import SwiftData @Model class TrackedItem { @Attribute var name: String init(name: String) { self.name = name } } struct ContentView: View { @Query private var items: [TrackedItem] @StateObject var viewModel = ViewModel(items: []) var body: some View { NavigationStack { YourAppView() } .environmentObject(viewModel) .onAppear { viewModel.reloadData(items: items) } .onChange(of: items) { viewModel.reloadData(items: items) } } } // ViewModel.swift import Foundation class ViewModel: ObservableObject { @Published var stuff: String = "Stuff" var items: [TrackedItem] init(items: [TrackedItem]) { self.items = items fetchData() } func reloadData(items: [TrackedItem]) { self.items = items fetchData() } private func fetchData() { stuff = "New stuff" } }
Replies
Boosts
Views
Activity
Dec ’24