如何检查@EnvironmentObject是否已设置?(斯威夫特用户界面)

Mik*_*ikk 5 crash preview swiftui environmentobject

我拥有的:View 和 ViewModel(作为 View 结构的扩展)。
它们都使用AppState类型的@EnvironmentObject。
问题是我的预览由于以下错误而崩溃:
Fatal error: No ObservableObject of type AppState found
注释掉loadUserfunc 中的行可以避免崩溃。

struct ProfileView: View {
    @EnvironmentObject var appState: AppState
    @ObservedObject var viewModel = ViewModel()
    ...
}
Run Code Online (Sandbox Code Playgroud)
extension ProfileView {
    class ViewModel: ObservableObject {
        @EnvironmentObject var appState: AppState
        @Published var userVM = UserVM(.example)

        init() {
            loadUser()
        }

        func loadUser() {
            User.WebService.getSelf { user, errorMsg in
                DispatchQueue.main.async {
                    guard let user = user else {
                        /*self.appState.showingAlert = true
                        self.appState.alert = Alert(
                            title: Text("An error occured!"),
                            message: Text(errorMsg ?? "unknown error"))*/
                        return
                    }
                    self.userVM = UserVM(user)
                }
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)
struct ProfileView_Previews: PreviewProvider {
    static let viewModel = ProfileView.ViewModel()
    static var previews: some View {
        let appState = AppState()
        appState.activeScreen = .profile
        return ProfileView()
            .environmentObject(appState)
    }
}
Run Code Online (Sandbox Code Playgroud)