我正在尝试将 EnvironmentObject 传递给子视图,但对以下代码没有运气。
struct ContentView: View {
enum MyViews: Int, CaseIterable {
case introView
case viewOne
case viewTwo
var activeView: AnyView {
switch self.rawValue {
case 0: return AnyView(IntroView())
case 1: return AnyView(ViewOne())
case 2: return AnyView(ViewTwo())
default: return AnyView(IntroView())
}
}
@State var pageIndex = 0
func content() -> MyViews? {
let newPage = MyViews.init(rawValue: pageIndex)
return newPage
}
}
var body: some View {
Group {
content()?.activeView // Problem appears to lie here
}
.environmentObject(userData)
}
如果我content()?.activeView
用一个简单的视图替换,例如TestView()
然后我能够成功地打印出TestView() 中的userData 变量。但就目前而言,我在尝试访问 ViewOne() 中的 userData 时遇到了崩溃,即使 ViewOne 与 TestView() 相同。
知道我做错了什么吗?