SwiftUI-从回调中分配一个值,显示在视图中



我一直在使用SwiftUI做一些琐碎的事情。我从我的API中提取了一些数据,只想用ForEach在我的视图中显示每个项目。

我有以下功能:

@State var workoutVideoList: GetWorkoutVideoListResponse!
func GetWorkoutVideoList() {
loadingWorkoutVideoList = true

PtPodsApiService.GetWorkoutList(firebaseToken: firebaseAuthToken) { (workoutListResult) -> () in
DispatchQueue.main.async() {
workoutVideoList = workoutListResult
loadingWorkoutVideoList = false
}
}
}

然后我想显示另一个视图,并将此对象传递给它:

if workoutVideoList != nil {
BookAppointmentView(workoutVideoList: workoutVideoList)
}
else {
Text("Nope")
}

无论出于何种原因,我的主线程都将workoutVideoList视为nil,即使它已被分配。我以为用调度员来分配它会解决问题,但没有乐趣!

知道我在这里做错了什么吗?

感谢

@State一个默认值@State var workoutVideoList: GetWorkoutVideoListResponse = false,并使用onAppear调用GetWorkoutVideoList(),但理想情况下,您最终会在ViewModel中使用它。

最新更新