Сбой на Canvas SwiftUI

Я реализую небольшое приложение с новым фреймворком iOS SwiftUI. Я использую @EnvironmentObject, чтобы привязать свои данные к просмотру. Все работает, но Canvas вылетает и ничего не показывает. Почему?

struct CompetitionsListSwiftUIView : View {

    @EnvironmentObject var competitionsViewModel: CompetitionsViewModel

    var body: some View {
        List(self.competitionsViewModel.competitions.identified(by: \.id)) { competition in
                CompetitionCellSwiftUIView(competition: competition)
            }
    }
}

#if DEBUG
struct CompetitionsListSwiftUIView_Previews : PreviewProvider {
    static var previews: some View {
        CompetitionsListSwiftUIView()
    }
}
#endif

Сообщение об ошибке Canvas следующее:

Error Domain=render service Code=12 "Rendering service was interrupted" UserInfo={NSLocalizedDescription=Rendering service was interrupted}

person nunzio giulio caggegi    schedule 26.06.2019    source источник


Ответы (1)


Попробуйте добавить объект вашей среды в предварительный просмотр:

#if DEBUG
struct CompetitionsListSwiftUIView_Previews : PreviewProvider {
    static var previews: some View {
        CompetitionsListSwiftUIView()
          .environmentObject(CompetitionsViewModel())
    }
}
#endif
person M Reza    schedule 26.06.2019
comment
Спас мой день. Компилятор не показывает никаких связанных ошибок. Отчеты об ошибках не подходят для предварительного просмотра - person Sandeep Rana; 11.11.2019
comment
Команда Xcode должна добавить больше отладочной информации о том, почему произошел сбой Preview Canvas. - person Christopher J.; 07.03.2020
comment
Должен полюбить самое наглядное сообщение об ошибке XCode за год. Сэкономил мне часы возиться. Спасибо - person Matthew Cawley; 01.05.2020