如何解决如何将 EnvironmentObject 从视图共享到其视图模型?
我正在使用 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()
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。