En una lista jerárquica, una fila ("parent") puede expandirse o colapsarse para mostrar otras filas hijas ("children"). Para que funcione, es necesario organizar la estructura datos X de modo que haya una propiedad y que contenga otras estructuras del mismo tipo X o nil en caso de que ya no contenga hijos (e.g. var y: [X]?).
struct Item: Identifiable {
let id = UUID()
let name: String
// ⚠️ Se usó este nombre para demostrar que la variable que almacena a los "children" puede tener cualquier nombre. Lo único que importa es que sea de tipo [X]?
var misH_iJoS: [Item]?
}
struct ContentView: View {
@State var items: [Item] = [
.init(name: "Carros", misH_iJoS: [
.init(name: "Toyota"),
.init(name: "Nissan"),
.init(name: "Mazda")
]),
.init(name: "Libros"),
.init(name: "Profesiones", misH_iJoS: [
.init(name: "Cocinero"),
.init(name: "Secretario"),
.init(name: "Estudiante")
])
]
var body: some View {
NavigationStack {
List(items, children: \.misH_iJoS) { item in
Text(item.name)
}
}
}
}

Top comments (0)