Con SwiftUI (Xcode 11.1), tengo algunas vistas configuradas con enlaces bidireccionales (usando @Binding ). La actualización bidireccional funciona muy bien.
Sin embargo, ¿cómo puedo instanciar la vista desde el PreviewProvider?
Por ejemplo:
struct AddProjectView: View {
@Binding public var showModal: Bool
var body: some View {
return VStack {
Text("Add Project View")
Button("Dismiss") {
self.showModal = false
}
}
}
}
No puedo hacer esto, porque "verdadero" no es un enlace:
struct AddProjectView_Previews: PreviewProvider {
static var previews: some View {
AddProjectView(showModal: true)
}
}
Y no puedo hacer esto porque " Los envoltorios de propiedades aún no son compatibles con las propiedades locales ":
struct AddProjectView_Previews: PreviewProvider {
static var previews: some View {
@Binding var show = true
return AddProjectView(showModal: $show)
}
}
Cómo hacemos esto?
¡¡Gracias!!

Debe declararlo como @State en su Vista previa.
También recuerde que debe ser estático, ya que se utiliza en una función estática.
fuente
.constant(false), es decir, si usa la vista previa en vivo, el valor no se puede cambiar.Si solo necesita un valor constante , use
.constant(VALUE):Si necesita un valor que se pueda cambiar en la vista previa en vivo , me gusta usar esta clase auxiliar:
Úselo así:
Esto le permite probar el cambio del enlace en la vista previa en vivo.
fuente