Dengan SwiftUI (Xcode 11.1), saya memiliki beberapa Tampilan yang diatur dengan binding 2 arah (menggunakan @Binding ). Pembaruan dua arah berfungsi dengan baik.
Namun, bagaimana saya bisa membuat tampilan dari PreviewProvider?
Sebagai contoh:
struct AddProjectView: View {
@Binding public var showModal: Bool
var body: some View {
return VStack {
Text("Add Project View")
Button("Dismiss") {
self.showModal = false
}
}
}
}
Saya tidak bisa melakukan ini, karena "benar" bukan Binding:
struct AddProjectView_Previews: PreviewProvider {
static var previews: some View {
AddProjectView(showModal: true)
}
}
Dan saya tidak dapat melakukan ini karena " Pembungkus properti belum didukung pada properti lokal ":
struct AddProjectView_Previews: PreviewProvider {
static var previews: some View {
@Binding var show = true
return AddProjectView(showModal: $show)
}
}
Bagaimana kita melakukan ini?
Terima kasih!!
Anda harus mendeklarasikannya sebagai @State pada Pratinjau Anda.
Juga ingat bahwa itu harus statis karena digunakan dalam fungsi statis.
sumber
.constant(false)
, yaitu jika Anda menggunakan pratinjau langsung, nilainya tidak dapat diubah.Jika Anda hanya membutuhkan nilai konstan , gunakan
.constant(VALUE)
:Jika Anda membutuhkan nilai yang dapat diubah di pratinjau langsung , saya ingin menggunakan kelas penolong ini:
Gunakan seperti ini:
Ini memungkinkan Anda menguji perubahan penjilidan dalam pratinjau langsung.
sumber