此功能一直持续到beta 7为止。看来,当我想传递集合中的一个元素作为对另一个视图的绑定时,预览会被破坏
我遵循发行说明,其中说 @Binding不再符合收集协议 comments are at the bottom
我在Beta 7中拥有Catalina和xcode
父母:
struct SimpleStructure {
var label: String
}
struct ContentView: View {
@State private var myVariables = [SimpleStructure(label: "hello")]
var body: some View {
ChildView(myVariables: $myVariables)
}
}
孩子
struct ChildView: View {
@Binding var myVariables: [SimpleStructure]
var body: some View {
List(myVariables.indexed(), id: \.1.label) {(index, variable) in
GrandChildView(myVariable: self.$myVariables[index])
}
}
}
GrandChild
struct GrandChildView: View {
@Binding var myVariable:SimpleStructure
var body: some View {
Text(myVariable.label)
}
}
更新:
Beta 8仍然存在问题
答案 0 :(得分:3)
发行说明中有错字。您需要更改:
var endIndex: Index { base.startIndex }
使用
var endIndex: Index { base.endIndex }
答案 1 :(得分:0)
Dunno,这个为您解决了吗?如果没有,也许这会有所帮助:
struct ChildView: View {
@Binding var myVariables: [SimpleStructure]
var body: some View {
List(myVariables.indices) { index in
GrandChildView(myVariable: self.$myVariables[index])
}
}
}
如果解决了,请标记正确的答案,或者自己提供解决方案,以防您在此期间找到答案。
答案 2 :(得分:0)
该问题已在SwiftUI Beta 10中修复