[SwiftUI] DataFlow - @State, @Binding

miori·2022년 11월 25일
0

ios-swiftUI

목록 보기
3/4
post-thumbnail

@State 복습

  • @State는 SwiftUI 에서 Single Source of Truth 를 가질수 있게 해주는 프로퍼티래퍼이다

그런데 만약 이런 유저 시나리오가 있다면 어떻게 해야할까?

View1 (list) -> View2 (detail)

  • list 뷰에서 ⭐️ 즐겨찾기를 누를 수 있다.
  • 누른 ⭐️ 즐겨찾기는 detail 뷰에서도 똑같이 표시되어야 한다.

위의 상황은 list뷰의 @State인 즐겨찾기의 bool 값이 detail뷰의 값과 동기화가 되어야 한다.
이럴때 swiftUI 에서는 @Binding을 사용하여, @State값을 참조 할 수 있다.

@Binding

@Binding을 사용한다면, single source of truth 로 부터 전달받은 값을 읽고 쓸수 있다.
말인즉슨 @State와 달리 single source of truth를 가지는 것이 아니라 참조하게 된다.

$ 접두사

$ 를 사용하게 되면, 내부적으로projectedValue 프로퍼티를 사용하게된다.
이때, projectedValue는 타입이 Binding 이기 때문에 값을 전달해 줄 수 있다.

profile
iS를 공부하는 miori 입니다.

0개의 댓글