Dans SwiftUI, il est souvent nécessaire d'afficher une vue "vide" en fonction de certaines conditions, par exemple:
struct OptionalText: View {
let text: String?
var body: some View {
guard let text = text else { return }
return Text(text)
}
}
Malheureusement, cela ne compile pas puisque le corps de guard
doit renvoyer une vue, c'est-à-dire une vue "vide" lorsque text
est nil
. Comment cet exemple doit-il être réécrit pour qu'il compile et affiche une vue "vide" lorsque text
vaut nil
?
Depuis Xcode 12 beta 2, la vue Group
n'est plus nécessaire et if let
les déclarations sont prises en charge, donc le résultat body
peut être un peu plus succinct:
var body: some View {
if let text = text {
Text(text)
} else {
EmptyView()
}
}