Мне нужно добавить аргумент для моего предварительного просмотра. Что я должен добавить без указания, является ли логическое значение истинным или ложным? - PullRequest
0 голосов
/ 05 марта 2020

Мне нужно добавить аргумент для моего предварительного просмотра. Что я должен добавить без указания, является ли логическое значение истинным или ложным?

import SwiftUI
struct LiberteIDCreation: View {
    @Binding var LoginSucess: Bool
    var body: some View {
        VStack {
            return Group {
                if LoginSucess  {
                    ContentView()
                } else {
                    LiberteIDLogin(LoginSucess: self.LoginSucess)
                }
                }
            }
        }
}

struct LiberteIDCreation_Previews: PreviewProvider {
   static var previews: some View {
        LiberteIDCreation(LoginSucess: Bool) //what should I add for this? I need to add an agrument for this 
    }
}

Что я могу добавить к LiberteLDCreation, чтобы он работал? Он говорит, что нуждается в аргументе?

Ответы [ 2 ]

0 голосов

Ответ: вы должны использовать .constant(false) в LiberteIDCreation_Previews. Но вот другая проблема, о которой вам нужно знать. Он не будет работать правильно в canvas ; в вашем случае (с операторами if...else) представление не будет обновляться. По крайней мере, в моей версии XCode это не сработало. Попробуйте примеры ниже, чтобы проверить. :

struct UsingBindingBool: View {

    @Binding var loginSuccess: Bool
    var body: some View {

        VStack {
            return Group {
                if loginSuccess  {
                    Text("success")
                } else {
                    Text("change variable from child").onTapGesture { self.loginSuccess = true }
                }

                Text("other group elements...")
            }
        }

    }
}

struct UsingStateForBinding: View {

    @State private var loginSuccess = false
    var body: some View {

        VStack {
            UsingBindingBool(loginSuccess: $loginSuccess)
                .padding(.bottom)
            Text("presenting parent button:").foregroundColor(.red)
            Button(action: {self.loginSuccess = true}) { Text("change to true from parent") }
        }


    }

}

struct UsingBindingBool_Previews: PreviewProvider {
    static var previews: some View {
        Group {
            UsingBindingBool(loginSuccess: .constant(false))
            UsingStateForBinding()
        }

    }
}
0 голосов
/ 05 марта 2020

Попробуйте

import SwiftUI
struct LiberteIDCreation: View {
    var LoginSucess: Bool
    var body: some View {
        VStack {
            return Group {
                if LoginSucess  {
                    ContentView()
                } else {

                }
                }
            }
        }
}

struct LiberteIDCreation_Previews: PreviewProvider {
   static var previews: some View {
        LiberteIDCreation(LoginSucess: true)  
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...