有时,我们可能只希望在某些可选值可用的情况下构造并显示我们的视图。例如,这里我们正在构建一个用户主界面视图,当用户完成登录后我们显示用户个人信息,如果用户没有登录者不显示。例如,我们已经尝试使用if语句来实现
struct HomeView: View {
@ObservedObject var loginManager: LoginManager
var body: some View {
VStack {
if let user = loginManager.loggedInUser {
ProfileView(user: user)
}
}
}
}
不幸的是,以上代码将给我们带来编译器错误
包含控制流语句的闭包不能与函数构建器ViewBuilder一起使用
由于SwiftUI(大多数情况下)不使用标准闭包,而是使用函数生成器,因此我们无法在闭包中放置用于配置HStack和VStack等视图的任意代码。那么,我们如何处理上面的需求呢?