在 SwiftUI 中的 ForEach 中绑定
Posted
技术标签:
【中文标题】在 SwiftUI 中的 ForEach 中绑定【英文标题】:Binding in a ForEach in SwiftUI 【发布时间】:2020-10-15 12:14:30 【问题描述】:我使用FetchRequest
来填充元素。然后我正在使用一个列表并希望显示某种待办事项元素,您可以在其中看到哪个被选中,哪个未被选中。为此我创建了一个 CheckBoxView。
我现在的问题是,我需要将绑定传递给视图。但是如何在 ForEach 中做到这一点?
如果我有一个对我来说很容易的绑定,我只需生成一个@State
就可以了。这里怎么做?
List
ForEach(elements, id: \.self) item in
CheckBoxView(checked: item.checked)
这里是视图:
struct CheckBoxView: View
@Binding var checked: Bool
....
【问题讨论】:
【参考方案1】:假设你的 elements
是 items 数组的状态,它可以是
List
ForEach(elements.indices, id: \.self) i in
CheckBoxView(checked: $elements[i].checked)
【讨论】:
您能解释一下为什么要使用索引吗?以上是关于在 SwiftUI 中的 ForEach 中绑定的主要内容,如果未能解决你的问题,请参考以下文章
在 ForEach 循环中绑定时,如何阻止 SwiftUI TextField 失去焦点?
SwiftUI 是不是可以在 ForEach 中传递绑定范围?
在绑定调用中使用 SwiftUI ForEach 的迭代器变量
SwiftUI 自定义 List 不能在 ForEach 中使用 Binding