如何预览包含绑定到其父视图状态的视图?

时间:2020-03-11 08:57:45

标签: swiftui

我将此视图作为其父视图的表单呈现出来

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的{​​{1}}自变量(Binding<Match>是将该视图显示为表单的父视图)。我不确定从这里开始是什么好方法,或者这是否是SwiftUI的限制。

2 个答案:

答案 0 :(得分:3)

如果您只想持续预览,则可以

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()
    }
}

答案 1 :(得分:0)

尝试一下:

struct NamesView_Previews: PreviewProvider {
        static var previews: some View {
            NamesView(match:.constant(Match()))
        }
    }