Невозможно преобразовать значение типа visibleLessonStruct в ожидаемый тип аргумента Binding - PullRequest
0 голосов
/ 16 января 2020

Я обновляю состояние 'lessonVisible' в моем родительском представлении "LessonOverview" из моего дочернего компонента "LessonView"

Код сам, если работает, как ожидалось, и состояние обновляется в родительском. Однако код не будет работать с предварительным просмотром.

Я получаю сообщение об ошибке ниже в строке 45 в структуре поставщика предварительного просмотра:

Невозможно преобразовать значение типа visibleLessonStruct в ожидаемое тип аргумента 'Binding'

в строке:

LessonView (lessonVisible: visibleLessonStruct (lessonType: .Reading)). previewDevice (PreviewDevice (rawValue: "iPhone) XS "))

Как мне решить эту проблему?

import Foundation
import SwiftUI

struct visibleLessonStruct{
    var lessonType: LessonType
}

enum LessonType{
    case Reading, Listening, Practice
}

struct LessonView: View {

     @Binding var lessonVisible : visibleLessonStruct!

    var body: some View {

        GeometryReader { geometry in
        VStack{

            HStack{
                Spacer()

                Button(action: {
                    print("Close button tapped!")
                    self.lessonVisible = nil
                }) {
                    Image("cross").renderingMode(.original).resizable().frame(width: 40, height: 40)
                }

            }.padding(10).padding(.trailing, 10)
            Spacer()
        }.background(Color.white).statusBar(hidden: true)
    }
    }
}


struct LessonView_Previews: PreviewProvider {



    static var previews: some View {

        LessonView(lessonVisible: visibleLessonStruct(lessonType: .Reading)).previewDevice(PreviewDevice(rawValue: "iPhone XS"))
    }
}

1 Ответ

0 голосов
/ 16 января 2020

попробуйте заключить его в .constant следующим образом:

struct LessonView_Previews: PreviewProvider {
    static var previews: some View {
    LessonView(lessonVisible: .constant(visibleLessonStruct(lessonType: .Reading))).previewDevice(PreviewDevice(rawValue: "iPhone XS"))
    }
}

константы, используемые в предварительном просмотре, чтобы имитировать c поведение переменных Bindable и State.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...