SwiftUI Xcode 11 beta 7 @Binding для коллекций нарушает предварительный просмотр

Это работало до бета 7. Кажется, что когда я хочу передать один элемент в коллекции в качестве привязки к другому представлению, предварительный просмотр прерывается.

Я следил за примечаниями к выпуску, где говорится, что @Binding больше не соответствует протоколу сбора комментарии внизу

У меня есть Каталина и xcode в бета 7

Родитель:

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


person Facundo Luis Rodriguez    schedule 29.08.2019    source источник


Ответы (3)


В примечаниях к выпуску есть опечатка. Вам нужно изменить:

var endIndex: Index { base.startIndex }

с участием

var endIndex: Index { base.endIndex }
person kontiki    schedule 29.08.2019
comment
Хорошо поймал! Ошибка, похоже, не исчезла после исправления опечатки. - person Facundo Luis Rodriguez; 30.08.2019

Не знаю, это решено для вас? Если нет, возможно, это поможет:

struct ChildView: View {
    @Binding var myVariables: [SimpleStructure]

    var body: some View {
        List(myVariables.indices) { index in
            GrandChildView(myVariable: self.$myVariables[index])
        }
    }
}

Если решено, либо отметьте правильный ответ, либо предоставьте решение здесь самостоятельно, если вы, возможно, нашли его тем временем.

person Maki    schedule 07.09.2019
comment
Все еще не работает с использованием .indices - person Facundo Luis Rodriguez; 09.09.2019

Проблема исправлена ​​в SwiftUI Beta 10.

person Facundo Luis Rodriguez    schedule 07.10.2019