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