Исходя из фона React, легко отобразить представление, только если определено значение.Это выглядит так:
function Component ({ profile }) {
return (
<div>{profile && <div>{profile.name}}</div>
)
}
Но я считаю, что этот шаблон гораздо сложнее скопировать в SwiftUI.В идеале мы могли бы использовать условное развертывание в наших представлениях, но в настоящее время это не работает.Единственное решение, которое мне удалось выяснить, действительно не элегантное:
struct ProfileView : View {
var profile: Profile?
var body : some View {
if let profile = profile {
return Text("profile: \(profile.bio)")
} else {
return Text("")
}
}
}
struct LayoutView : View {
@State var profile: Profile?
var body : some View {
Group {
ProfileView(profile: profile)
}
}.onAppear(perform: fetch)
// fetch method
}
Есть ли у кого-нибудь лучшие стратегии условного рендеринга с использованием необязательных значений?