我想从函数,文本或文本和按钮的VStack返回不同的 View 。这是我的尝试之一:
func buildResponseText2() -> some View {
if (userData.success) {
return VStack {
Text("Well Done")
Button("Play Again", action: {self.userData.reset()})
}
}
return VStack {
Text("Unlucky")
}
}
这无法编译,我得到了错误
有没有一种方法可以返回具有异构内容的 View 容器(如VStack)?
最佳答案
使用类型擦除AnyView
作为返回类型,如下所示
func buildResponseText2() -> AnyView {
if (userData.success) {
return AnyView(VStack {
Text("Well Done")
Button("Play Again", action: {self.userData.reset()})
})
}
return AnyView(VStack {
Text("Unlucky")
})
}