到目前为止,他一直在使用SwiftUI,并了解BindableObjects
等的概念(至少我希望我这样做)。
我遇到了一个愚蠢的问题,似乎找不到以下答案:
如何初始化@Binding
变量?
我有以下代码:
struct LoggedInView : View {
@Binding var dismissView: Bool
var body: some View {
VStack {
Text("Hello World")
}
}
}
在我的预览代码中,我想传递Binding<Bool>
类型的参数:
#if DEBUG
struct LoggedInView_Previews : PreviewProvider {
static var previews: some View {
LoggedInView(dismissView: **Binding<Bool>**)
}
}
#endif
我该如何进行初始化?尝试过:
Binding<Bool>.init(false)
Binding<Bool>(false)
甚至:
@Binding var dismissView: Bool = false
但是没有一个……任何想法?
答案 0 :(得分:4)
在应用中使用LoggedInView
时,您确实需要提供一些绑定,例如上一个视图中的@State
或@EnvironmentObject
。
对于PreviewProvider
的特殊情况,您只需要一个固定值,就可以使用.constant(false)
例如
#if DEBUG
struct LoggedInView_Previews : PreviewProvider {
static var previews: some View {
LoggedInView(dismissView: .constant(false))
}
}
#endif
答案 1 :(得分:0)
对于您的情况,如果您仍想初始化Binding变量,则可以使用:
var binding: Binding = .constant(false)