将枚举绑定到 SwiftUI 中的列表选择
Binding Enum to List choice in SwiftUI
我试图在 SwiftUI 中将我的枚举案例呈现为列表选项。我正在使用 Xcode 13.2.1
我的问题是将枚举类型的状态变量绑定到列表选项。我收到编译器错误
“无法推断通用参数 'SelectionValue'”
enum MyEnum : String, CaseIterable, Identifiable
{
var id : RawValue { rawValue }
case A = "_A_"
case B = "_B_"
case C = "_C_"
}
struct MyView : View
{
@State var choice : MyEnum = MyEnum.A
var body : some View
{
List( MyEnum.allCases , selection: $choice) // << Generic parameter error here
{ name in
Text(name.rawValue)
}
}
}
尝试指定通用参数似乎也无济于事。
比如我试过
List<MyEnum, ForEach<[MyEnum], String, Text>>( MyEnum.allCases , selection: $choice)
但是得到同样的编译错误
List
选择类型必须是可选的。这里是固定部分
struct MyView : View
{
@State var choice : MyEnum? = MyEnum.A // << here !!
// .. other content
}
我试图在 SwiftUI 中将我的枚举案例呈现为列表选项。我正在使用 Xcode 13.2.1
我的问题是将枚举类型的状态变量绑定到列表选项。我收到编译器错误 “无法推断通用参数 'SelectionValue'”
enum MyEnum : String, CaseIterable, Identifiable
{
var id : RawValue { rawValue }
case A = "_A_"
case B = "_B_"
case C = "_C_"
}
struct MyView : View
{
@State var choice : MyEnum = MyEnum.A
var body : some View
{
List( MyEnum.allCases , selection: $choice) // << Generic parameter error here
{ name in
Text(name.rawValue)
}
}
}
尝试指定通用参数似乎也无济于事。
比如我试过
List<MyEnum, ForEach<[MyEnum], String, Text>>( MyEnum.allCases , selection: $choice)
但是得到同样的编译错误
List
选择类型必须是可选的。这里是固定部分
struct MyView : View
{
@State var choice : MyEnum? = MyEnum.A // << here !!
// .. other content
}