我一直在使用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中使用它。