如何将 Picker 与数据模型一起使用
How to use Picker with data model
我正在尝试 select 或者,使用来自数组的信息,但是每当我 select 一个选项 select 或者总是 returns自动到第一个位置,我怎么能在我的 $ i.anio?
中保存 selected 年份
谢谢
//---------------MODEL-----------------
struct SysNoAntpatologicosModel {
var anio: Int
var descripcion: String
var idantnopat: Int
var nombre: String
var presente: Bool
}
//-------------ARRAY----------------
[{
anio = 2001;
descripcion = "test1";
idantnopat = 38;
nombre = Accidente;
presente = 0;
},
{
anio = 2002;
descripcion = "test2";
idantnopat = 42;
nombre = Inmunizacion;
presente = 0;
}
]
@State var dataSys : [SysNoAntpatologicosModel] = []
ForEach($dataSys, id: \.idantnopat) { $i in
HStack{
Picker("", selection: $i.anio) {
ForEach(2000...2021, id: \.self) {
Text([=10=])
}
}
.pickerStyle(InlinePickerStyle())
.onChange(of: i.anio) { tag in
print("year: \(tag)")
}
}
}
通过您的编辑,您已经非常接近了——您只需要在 Text
输入周围添加 ""
以便编译:
struct SysNoAntpatologicosModel {
var anio: Int
var descripcion: String
var idantnopat: Int
var nombre: String
var presente: Bool
}
struct ContentView : View {
@State var dataSys : [SysNoAntpatologicosModel] =
[.init(anio: 2001, descripcion: "test1", idantnopat: 38, nombre: "Accidente", presente: false),
.init(anio: 2002, descripcion: "test2", idantnopat: 42, nombre: "Inmunizacion", presente: false),
]
var body: some View {
ForEach($dataSys, id: \.idantnopat) { $i in
HStack{
Picker("", selection: $i.anio) {
ForEach(2000...2021, id: \.self) {
Text("\([=10=])") //<-- Here
}
}
.pickerStyle(InlinePickerStyle())
.onChange(of: i.anio) { tag in
print("year: \(tag)")
}
}
}
}
}
我正在尝试 select 或者,使用来自数组的信息,但是每当我 select 一个选项 select 或者总是 returns自动到第一个位置,我怎么能在我的 $ i.anio?
中保存 selected 年份谢谢
//---------------MODEL-----------------
struct SysNoAntpatologicosModel {
var anio: Int
var descripcion: String
var idantnopat: Int
var nombre: String
var presente: Bool
}
//-------------ARRAY----------------
[{
anio = 2001;
descripcion = "test1";
idantnopat = 38;
nombre = Accidente;
presente = 0;
},
{
anio = 2002;
descripcion = "test2";
idantnopat = 42;
nombre = Inmunizacion;
presente = 0;
}
]
@State var dataSys : [SysNoAntpatologicosModel] = []
ForEach($dataSys, id: \.idantnopat) { $i in
HStack{
Picker("", selection: $i.anio) {
ForEach(2000...2021, id: \.self) {
Text([=10=])
}
}
.pickerStyle(InlinePickerStyle())
.onChange(of: i.anio) { tag in
print("year: \(tag)")
}
}
}
通过您的编辑,您已经非常接近了——您只需要在 Text
输入周围添加 ""
以便编译:
struct SysNoAntpatologicosModel {
var anio: Int
var descripcion: String
var idantnopat: Int
var nombre: String
var presente: Bool
}
struct ContentView : View {
@State var dataSys : [SysNoAntpatologicosModel] =
[.init(anio: 2001, descripcion: "test1", idantnopat: 38, nombre: "Accidente", presente: false),
.init(anio: 2002, descripcion: "test2", idantnopat: 42, nombre: "Inmunizacion", presente: false),
]
var body: some View {
ForEach($dataSys, id: \.idantnopat) { $i in
HStack{
Picker("", selection: $i.anio) {
ForEach(2000...2021, id: \.self) {
Text("\([=10=])") //<-- Here
}
}
.pickerStyle(InlinePickerStyle())
.onChange(of: i.anio) { tag in
print("year: \(tag)")
}
}
}
}
}