Property wrapper observedobject til22
ObservedObject, StateObject, EnvironmentObject,
struct mainView: View {
@StateOBject var example = sampleModel();
var body: some View {
subView()
.environmentObject(example)
}
}
struct subView: View {
@EnvironmentObject var example: sampleModel
var body: some View {
Text("\(example.datas[0]))
}
}
최상위뷰에서 observableObject를 conform하는 클래스에 property Wrapper를 @StateObject사용하여 객체를 선언하고, 하위뷰에서 property Wrapper인 @EnvironmentObject를 사용한다면 해당 데이터에 접근이 가능해지는 구조이다.
이때 앱 전체에 사용하고 싶은 데이터 모델이 존재하고, 모두 parameter로 해당 데이터 모델을 넘기지 않고 싶다면, environmentObject(_:) view modifer사용하여 객체를 environment에 넣어주어야 한다.
댓글
