@Bindingのpreviewについて

SwiftUI

 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機能なのでしっかり使っていきましょう。

コメント

タイトルとURLをコピーしました