⛈️ 문제 상황
struct ContentView: View {
@State var myViewModel = MyViewModel()
var body: some View {
MyView()
.environmemt(myViewModel)
}
}
위와 같이 @Observable이 적용된 MyViewModel을 MyView의 environment로 등록하고 나서 아래와 같이 LoginView의 하위 스택들에서 @Environment로 MyViewModel을 불러오면 프리뷰에서 에러가 발생한다. (시뮬레이터는 정상 작동)
struct MyView: View {
@Environment(MyViewModel.self) var myViewModel
var body: some View {
@Bindable var myViewModel = myViewModel
...
}
}
☀️ 해결법
프리뷰의 관점으로는 environment로 등록한 MyViewModel는 존재하지 않아서 접근할 수 없으므로, 아래와 같이 프리뷰에도 마찬가지로 MyViewModel 객체를 environment로 등록하면 해결된다.
#Preview {
MyView()
.environment(MyViewModel())
}
'iOS > Trouble Shooting' 카테고리의 다른 글
Xcode "Cannot preview in this file: Unexpected error occurred" 에러 해결법 (0) | 2024.05.06 |
---|