SwiftUI如何在View需要初始化器中的@Binding时实例化PreviewProvider [英] SwiftUI How to instantiate PreviewProvider when View requires @Binding in initializer
本文介绍了SwiftUI如何在View需要初始化器中的@Binding时实例化PreviewProvider的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
使用SwiftUI(Xcode 11.1),我已经设置了一些使用2向绑定的视图(使用 @Binding ).双向更新效果很好.
With SwiftUI (Xcode 11.1), I've got some Views set up with 2-way bindings (using @Binding). Two-way updating works great.
但是,如何从PreviewProvider实例化视图?
However, how can I instantiate the view from the PreviewProvider?
例如:
struct AddProjectView: View {
@Binding public var showModal: Bool
var body: some View {
return VStack {
Text("Add Project View")
Button("Dismiss") {
self.showModal = false
}
}
}
}
我不能这样做,因为"true"不是绑定:
I can't do this, because "true" is not a Binding:
struct AddProjectView_Previews: PreviewProvider {
static var previews: some View {
AddProjectView(showModal: true)
}
}
我不能这样做,因为"本地属性尚不支持属性包装器":
And I can't do this because "Property wrappers are not yet supported on local properties":
struct AddProjectView_Previews: PreviewProvider {
static var previews: some View {
@Binding var show = true
return AddProjectView(showModal: $show)
}
}
我们如何做到这一点?
谢谢!
推荐答案
.constant
就是为了这个目的:
///创建具有不变的
value
的绑定.
struct AddProjectView: View {
@Binding public var showModal: Bool
var body: some View {
return VStack {
Text("Add Project View")
Button("Dismiss") {
self.showModal = false
}
}
}
}
struct AddProjectView_Previews: PreviewProvider {
static var previews: some View {
AddProjectView(showModal: .constant(true))
}
}
这篇关于SwiftUI如何在View需要初始化器中的@Binding时实例化PreviewProvider的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文