问题描述
我使用FetchRequest
来填充元素。然后,我使用一个列表,并希望显示某种待办事项元素,您可以在其中看到已选中的元素和未选中的元素。为此,我创建了一个CheckBoxView。
我现在的问题是,我需要将绑定传递给视图。但是如何在ForEach中做到这一点?
如果我有一个简单的绑定对我来说很容易,我只需生成一个@State
就可以了。在这里怎么做?
List {
ForEach(elements,id: \.self) { item in
CheckBoxView(checked: item.checked)
}
}
这是视图:
struct CheckBoxView: View {
@Binding var checked: Bool
....
}
解决方法
假设您的elements
是项目状态数组,则可以是
List {
ForEach(elements.indices,id: \.self) { i in
CheckBoxView(checked: $elements[i].checked)
}
}