[SwiftUI] Data Flow — State

J_sung_0o0
2 min readSep 20, 2020

--

SwiftUI 에 의해 관리되는 값을 읽고 쓸 수 있는 프로퍼티 wrapper 타입.

State는 뷰에 영향을 주는 값을 선언할 때 사용하는 타입입니다. State 값이 변경되면 viewbody는 다시 계산에 들어갑니다. 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)
}
}
}

참고

--

--

J_sung_0o0
J_sung_0o0

Written by J_sung_0o0

Apple WWDC 19 & 20 Winner (The 1st two-time winner of all time from South Korea)

No responses yet