С SwiftUI (Xcode 11.1) у меня есть несколько видов, настроенных с двухсторонними привязками (используя @Binding ). Двустороннее обновление прекрасно работает.
Однако как я могу создать представление из PreviewProvider?
Например:
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: true)
}
}
И я не могу этого сделать, потому что « Оболочки свойств еще не поддерживаются в локальных свойствах »:
struct AddProjectView_Previews: PreviewProvider {
static var previews: some View {
@Binding var show = true
return AddProjectView(showModal: $show)
}
}
как нам это сделать?
Спасибо!!
Вы должны объявить его как @State в вашем предварительном просмотре.
Также помните, что он должен быть статическим, так как он используется в статической функции.
источник
.constant(false)
, т. Е. Если вы используете предварительный просмотр в реальном времени, значение не может быть изменено.Если вам нужно только постоянное значение , используйте
.constant(VALUE)
:Если вам нужно значение, которое можно изменить в режиме предварительного просмотра , я хотел бы использовать этот вспомогательный класс:
Используйте это так:
Это позволяет проверить изменение привязки в режиме предварительного просмотра.
источник