【发布时间】:2019-12-18 21:55:09
【问题描述】:
我正在尝试使用 Picker 作为结构的选择。假设我有一个结构“宠物”,如下所示
struct Pet: Identifiable, Codable, Hashable {
let id = UUID()
let name: String
let age: Int
}
我从某个类中获取所有 Pet,其中 Pets 被定义为 @Published var pets = Pet
static let pets = Class().pets
我希望能够将选择器的选择写入以下变量:
@State private var petSelection: Pet?
选择器是:
Picker("Pet", selection: $petSelection){
ForEach(Self.pets) { item in
Text(item.name)
}
}
Picker 正确显示了所有可用的宠物,但是当我选择一个时 petSelection 没有改变(nil)。我应该如何管理它?
谢谢!
编辑:
当然我知道我可以使用如下标签:
Picker("Pet", selection: $petSelection) {
ForEach(0 ..< Self.pet.count) { index in
Text(Self.pet[index].name).tag(index)
}
但是想知道是否可以使用 struct 作为选择。谢谢
【问题讨论】: