[SwiftUI] Data Flow — State
2 min readSep 20, 2020
SwiftUI 에 의해 관리되는 값을 읽고 쓸 수 있는 프로퍼티 wrapper 타입.
State
는 뷰에 영향을 주는 값을 선언할 때 사용하는 타입입니다. State
값이 변경되면 view
의 body
는 다시 계산에 들어갑니다. State
를 사용할 때는 반드시 주어진 뷰 만을 위한 single source of truth 를 준수해야합니다.
State
인스턴스 자체는 값이 아니기 때문에 값에 접근 하려면 .wrappedValue
프로퍼티를 사용해야 합니다.
State
는 반드시 해당하는 뷰의 body
또는 body
에서 불리는 메소드 내부에서만 접근해야 합니다. 외부에서 접근하지 않게 private
하게 선언해주어야 합니다.
다른 뷰로 State
의 값을 전달 할때는 $
prefix operator를 사용하도록 합니다. (아래 코드 예시 참고)
struct PlayerView: View {
@State private var isPlaying: Bool = false var body: some View {
VStack {
...
PlayButton(isPlaying: $isPlaying)
}
}
}