如何预览包含与其父视图状态绑定的视图?
Posted
技术标签:
【中文标题】如何预览包含与其父视图状态绑定的视图?【英文标题】:How do you preview a view containing a binding to its parent view's state? 【发布时间】:2020-03-11 08:57:45 【问题描述】:我将此视图显示为来自其父视图的工作表
struct NamesView: View
@Binding var match: Match
var body: some View
...
由于match
的事实来源位于呈现此NamesView
工作表的父视图中,因此在构造视图时,我传入$match
绑定,数据按预期流动。
但是,在预览提供程序中构建此视图时
struct NamesView_Previews: PreviewProvider
static var previews: some View
NamesView()
编译器说NamesView()
需要match
类型的Binding<Match>
参数(Match
是将此视图呈现为工作表的父视图)。我不确定从这里开始的好方法是什么,或者这是否是 SwiftUI 的限制。
【问题讨论】:
【参考方案1】:如果你只想要恒定预览,那么它可以是
struct NamesView_Previews: PreviewProvider
static var previews: some View
NamesView(match: .constant(Match()))
如果你想要它在现场,它可以是
struct NamesView_Previews: PreviewProvider
struct BindingTestHolder: View
@State private var testedMatch = Match()
var body: some View
NamesView(match: $testedMatch)
static var previews: some View
BindingTestHolder()
【讨论】:
【参考方案2】:试试这个:
struct NamesView_Previews: PreviewProvider
static var previews: some View
NamesView(match:.constant(Match()))
【讨论】:
以上是关于如何预览包含与其父视图状态绑定的视图?的主要内容,如果未能解决你的问题,请参考以下文章