[英]@EnvironmentObject not created correctly
I want to access an instance of the class我想访问类的一个实例
class MyModel: ObservableObject {
@Published var s: String = "test"
}
via the environment.通过环境。 I instanciated it in Scene Delegate
我在 Scene Delegate 中实例化了它
var m = MyModel()
Then I tried to put it into the environment with然后我试着把它放到环境中
let contentView = ContentView().environment(\.managedObjectContext, context)
_ = contentView.environmentObject(m)
In contentview I reference it like在 contentview 我引用它
@EnvironmentObject var mod: MyModel
If I access it like如果我像这样访问它
Text(mod.s)
the app crashes, saying "Fatal error: No ObservableObject of type MyModel found."应用程序崩溃,显示“致命错误:未找到 MyModel 类型的 ObservableObject”。
What am I doing wrong?我究竟做错了什么?
Instead of代替
let contentView = ContentView().environment(\\.managedObjectContext, context) _ = contentView.environmentObject(m)
use用
let contentView = ContentView()
.environmentObject(m)
.environment(\.managedObjectContext, context)
it is not a setter, it is view modifier that generates another view with injected environment object它不是一个 setter,它是一个视图修改器,它用注入的环境对象生成另一个视图
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.