Property wrapper observedobject til22

future0159 1월 21일 AM 08:46 4 0
future0159 Profile Image Level 9
1

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에 넣어주어야 한다.

댓글