集合的SwiftUI Xcode 11 beta 7 @Binding打破预览

时间:2019-08-29 16:00:12

标签: xcode macos swiftui xcode11 macos-catalina

此功能一直持续到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仍然存在问题

3 个答案:

答案 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中修复