配列を手動で参照せずに、@Binding 主導のコントロールを使用して動的リストを作成するにはどうすればよいですか? 当たり前のように思えますが、List または ForEach を使用して配列を反復処理すると、あらゆる種類の奇妙なエラーが発生します。
struct OrderItem : Identifiable {
let id = UUID()
var label : String
var value : Bool = false
}
struct ContentView: View {
@State var items = [OrderItem(label: "Shirts"),
OrderItem(label: "Pants"),
OrderItem(label: "Socks")]
var body: some View {
NavigationView {
Form {
Section {
List {
Toggle(items[0].label, isOn: $items[0].value)
Toggle(items[1].label, isOn: $items[1].value)
Toggle(items[2].label, isOn: $items[2].value)
}
}
}.navigationBarTitle("Clothing")
}
}
}
これは機能しません:
...
Section {
List($items, id: \.id) { item in
Toggle(item.label, isOn: item.value)
}
}
...
タイプ '_' にはメンバー 'id' がありません
次のようなこともありません。
...
Section {
List($items) { item in
Toggle(item.label, isOn: item.value)
}
}
...
汎用パラメーター 'SelectionValue' を推測できませんでした