¡No puedo encontrar una respuesta que estoy seguro de que será simple !. el Selector muestra todos los valores sin problema pero no elige el valor seleccionado. Intento agregando ', id: .self.id' en ForEach (section.serie, id: .self.id) pero esto no cambia nada.

Estructuras utilizadas como 'tablas' para todos los datos

struct Eseries: Codable, Identifiable {
   var id: UUID
   var name: String
   var serie: [EserieData]
}

struct EserieData: Codable, Equatable, Identifiable {
   var id: UUID
   var name: String
   var values: [String]

Extracto del archivo json

[
   {
      "id": "EF1CC5BB-4785-4D8E-AB98-5FA4E00B6A66",
      "name": "e-series",
      "serie": [
         {
            "id": "EDCD038C-036F-4C40-826F-61C88CD84DDD",
            "name": "E3 50%",
            "values": ["100", "220", "470"]
         },

Extracto de ContentView

//load data from json file
   let eserie = Bundle.main.decode([Eseries].self, from: "eseries.json")

   @State private var selectedSerie = "E24 5%"
    
   VStack {
      Text("E-Serie")
      Picker("E-Serie", selection: $selectedSerie) {
         ForEach(eserie) { section in
            Section() {
               ForEach(section.serie) { item in
                  Text(item.name)
               }
            }
         }
      }
      .padding()
      .frame(maxWidth: geometry.size.width / 3)
      .clipped()
      .border(Color.red)
   }

Selector con sus datos

0
andrelabbe 19 feb. 2021 a las 13:16

1 respuesta

La mejor respuesta

Yo no se la respuesta. Ya no uso json o sería demasiado complicado extraer los 'datos' para init en la tabla. Creé 2 tablas. Uno para cada selector y esto funciona bien.

0
andrelabbe 9 mar. 2021 a las 07:43