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

Aus*_*lon 3 swiftui

我将此视图作为其父视图的工作表呈现

struct NamesView: View {
    @Binding var match: Match

    var body: some View {
        ...
    }
}
Run Code Online (Sandbox Code Playgroud)

由于match事实来源位于呈现此NamesView工作表的父视图中,因此在构造视图时,我会$match按预期传入绑定和数据流。

但是,在预览提供程序中构造此视图时

struct NamesView_Previews: PreviewProvider {
    static var previews: some View {
        NamesView()
    }
}
Run Code Online (Sandbox Code Playgroud)

编译器表示NamesView()需要一个match类型的参数Binding<Match>Match作为将此视图呈现为工作表的父视图)。我不确定从这里开始的好方法是什么,或者这是否是 SwiftUI 的限制。

Asp*_*eri 7

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

struct NamesView_Previews: PreviewProvider {
        static var previews: some View {
            NamesView(match: .constant(Match()))
        }
    }
Run Code Online (Sandbox Code Playgroud)

如果你想要它在现场,它可以是

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()
    }
}
Run Code Online (Sandbox Code Playgroud)