在3个条件下初始化swift/swiftui var



我正试图用的几个条件初始化一个var

struct BreadCrumbCard: View { 
var selection:String 
var isSelected: Bool 
var color = Color("Gray")
if(isSelected){ //error is here
color = Color("Yellow")
}else if(!selection.isEmpty){
color = Color("Green")
}else{
color = Color("Gray")
}
var body: some View{
...

"预期声明";

我已经搜索了一段时间,但我找不到这样做的方法或替代方案,我相信这一定很明显,但我是swift的新手。如何在这些条件下初始化此变量?

不能将控制代码放在结构或类的顶级作用域中,它必须始终放在函数或类似上下文中。

有几种方法可以解决这个问题,其中一种方法是使用计算属性:

struct BreadCrumbCard: View { 
var selection: String 
var isSelected: Bool 
var color: Color {
if isSelected { //error is here
return Color("Yellow")
} else if !selection.isEmpty {
return Color("Green")
} else {
return Color("Gray")
}
}
var body: some View{
Text("foo").foregroundColor(self.color)
}
}

最新更新