我正在使用 DataStore environmentObject
在我的应用程序周围传递数据,但是我现在需要为视图创建特定的视图模型类,但我需要能够传递我的 dataStore
到我的 WorkoutDetailViewModel
的实例,但无法想出一种方法来做到这一点。我尝试将它作为参数传递给 WorkoutDetailViewModel
,但编译器抱怨 Cannot use instance member 'dataStore' within property initializer; property initializers run before 'self' is available
。我还能怎么做?
struct NewWorkoutDetailView: View {
@EnvironmentObject var dataStore: DataStore
@StateObject var workoutDetailViewModel = WorkoutDetailViewModel(dataStore: dataStore)
var body: some View {
}
}
final class WorkoutDetailViewModel: ObservableObject {
var dataStore: DataStore
@Published var fullyLoadedWorkout: TrackerWorkout?
@Published var notes: String = ""
@Published var workoutImage = UIImage()
@Published var workoutLocation: String = ""
public func editWorkout() {
dataStore.loadWorkouts()
}
}