Проблема здесь в том, что инициализатор Toggle(isOn:label:)
принимает Binding<Bool>
для своего параметра isOn
, а не просто Bool
. Binding<_>
- это своего рода «читаемое» для записи «представление» в свойстве, которое позволяет элементу управления обновлять значение, которое ему не принадлежит, и распространять эти изменения на тех, кто владеет владельцем свойства.
РЕДАКТИРОВАТЬ: Я сделал это более сложным, чем это должно было быть. Следующие работы:
ForEach($propertyValues.identified(by: \.id.value)) { (propertyValue: Binding<properties>) in
HStack {
Toggle(isOn: propertyValue.isOn) {
Text("")
}
// ...
}
}
Используя $propertyValues
, мы получаем доступ к Binding
к самому массиву, который преобразуется в привязки к каждому из элементов.
EDIT:
Чтобы вышеприведенное сработало, вам нужно добавить .value
в нескольких местах в теле, чтобы вы ссылались на фактические значения, а не на привязки к значениям.