Yes, the notation requested in code snapshot is not allowed, at least for now, but the intended result is possible to achieve with the following very simple approach - extract control flow into function:
var person: Person? // actually @ObservedObject does not allowed optional
var body: some View {
VStack {
if person != nil {
// same as before
}
personViewIfExists() // << just extract it in helper function
}
}
private func personViewIfExists() -> some View { // generates view conditionally
if let p = person {
return ExistedPersonView(person: p) // << just for demo
}
}
on some conditions also the following variant of function might be required (although it produces the same result)
private func personViewIfExists() -> some View {
if let p = person {
return AnyView(ExistedPersonView(person: p))
}
return AnyView(EmptyView())
}
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…