我有 3 节课:
class ClassOne: ObservableObject {
@Published var loading: Bool = false
}
class ClassTwo: ObservableObject {
@Published var loading: Bool = false
}
class ClassThree: ObservableObject {
@Published var loading: Bool = false
}
在 SwiftUI View 中,当所有 loading
变量均为 true
时,我需要执行某些操作
当然,这是我的文件的简化版本:每个类的加载 var 通过下载方法设置 true 或 false。 我只需要检查所有下载是否已完成并删除加载 View 。
struct MainScreen3: View {
@State private var cancellables = Set<AnyCancellable>()
@EnvironmentObject var classOne: ClassOne
@EnvironmentObject var classTwo: ClassTwo
@EnvironmentObject var classThree: ClassThree
@State private var loading: Bool = true
var body: some View {
VStack {
if loading {
Text("Please wait...")
} else {
Text("Done!")
}
}.onAppear {
self.classOne.fetchFromServer()
self.classTwo.fetchFromServer()
self.classThree.fetchFromServer()
}
}
}
有什么建议吗?
最佳答案
您可以使用计算属性。
private var loading: Bool {
(self.classOne.loading || self.classTwo.loading || self.classThree.loading)
}
关于swift - 检查多个@Published 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67472990/