SWIFTUI List хочет иметь переключатель в списке. Невозможно преобразовать значение типа «MyModel» в ожидаемый тип аргумента «Binding <MyModel>» - PullRequest
0 голосов
/ 21 апреля 2020

Я просто хочу иметь список записей с текстом и переключателем. Почему-то вообще не получается. Я получаю сообщение об ошибке: Невозможно преобразовать значение типа «MyModel» в ожидаемый тип аргумента «Binding»

Как получить значение bool, отображаемое в списке как переключатель и быть изменчивым?

Это мой код:

struct ContentView: View {

@State var myModels: [MyModel] = [
       MyModel(id: "1", name: "First Model-1-", notify: false),
       MyModel(id: "2", name: "Second Model", notify: true)
   ]

var body: some View {

    List{
        ForEach(myModels, id: \.id){myModel in
            HStack{
            Text(myModel.name)
            Spacer()
            ToggleView(myModel: myModel) //<-- here s the error message: Cannot convert value of type 'MyModel' to expected argument type 'Binding<MyModel>'
        }
        }

}
}

}



struct ToggleView: View {
@Binding var myModel: MyModel // <<

var body: some View {
    HStack {
        Toggle(isOn: $myModel.notify) {
            Text("Done")
        }
        Text(myModel.notify ? "Complete" : "Not complete")

    }
}
}

Любая помощь более чем ценится!

1 Ответ

0 голосов
/ 21 апреля 2020

Скорее всего, вам просто нужно использовать двустороннюю привязку. Таким образом, отсутствует $:

ToggleView(myModel: $myModel)
...