SwiftUIはPreviewが非常に便利ですが、その分Previewのコードもしっかり書く必要があります。
通常の変数や@Stateの場合はそのまま値を渡せば良いですが、@Bindingを使用する場合は@Stateを宣言した変数を渡す必要があります。その為、Previewの構造体内で変数を宣言します。
 また、previewsプロパティにはstaticが宣言されている為、@Stateの変数にもstaticを宣言する必要があります。
 
struct BindingTest: View {
    
    @Binding var dispState: Bool
    
    var body: some View {
        
        if dispState {
            return Text("Binding Preview Test")
        }else{
            return Text("Hello, World!")
        }
    }
}struct BindingTest_Previews: PreviewProvider {
    
    @State static var dispState = true
    
    static var previews: some View {
        BindingTest(dispState: $dispState)
    }
}面倒な場合はpreviewをコメントアウトしてしまえばビルドできますし、実機やシミュレータで実行してしまえば確認できますが、折角の充実しているpreview機能なのでしっかり使っていきましょう。
 


コメント