Вам нужно использовать необязательную привязку, чтобы развернуть безопасную необязательную переменную. Однако простое использование этого внутри body
приведет к ошибке компилятора, потому что не весь поток управления (включая if let
) разрешен внутри body
представления, поэтому вам нужно обернуть его в другое вычисляемое свойство.
struct MyView: View {
var myString: String?
var body: some View {
NavigationView {
innerView
}
}
var innerView: some View {
if let myString = myString {
return AnyView(CustomView(text: myString))
} else {
return AnyView(EmptyView())
}
}
}
Или вы можете упростить это, используя Optional.map
.
struct MyView: View {
var myString: String?
var body: some View {
NavigationView {
myString.map { CustomView(text: $0) }
}
}
}