在 ParentView 中使用 @State 和在 ChildView 中使用 @Binding,我们可以在打印视图和子视图中的 2 个变量的值之间建立连接。使用这样的代码:
ChildView(valueFromParent: $valueInParent)
在 ParentView 中使用 @State 和 valueFromParent 在 ChildView 中使用 @Binding。这样,这两个变量现在是相关的,改变一个变量会改变另一个变量。
是否可以使用行的 ID 号在 ForEach 循环中的两个视图之间进行此绑定?像这样的东西:
ForEach((1...15), id: \.self) {item in
ChildView(valueFromParent[item]: self.$valueInParent[item])
}
我知道另一种方法 - 创建一个项目数组以传递给具有数组内 ID 的列表:
@State private var list = [
(id: 0, model: ListItemModel()),
(id: 1, model: ListItemModel()),
(id: 2, model: ListItemModel()),
(id: 3, model: ListItemModel()),
(id: 4, model: ListItemModel())
]
编辑:但我希望避免使用固定项目列表的上述数组。
我想使用这样的 ForEach 循环创建一个简单的原型:ForEach((1...15), id: .self)。问题是我不知道如何从列表中的特定行访问 var 的值。