【发布时间】:2021-03-09 16:13:21
【问题描述】:
我已经使用 Swinject 制作了一个 IOC 容器来管理我的依赖注入,并且我尝试将它与一些属性包装器配对:
@propertyWrapper
struct Inject<T:ObservableObject>{
let wrappedValue: T = SwinjectContainer.resolve(ObjectType: T.self)
}
下一步是在我的视图中使用这个属性包装器......但是使用另一个属性包装器@StateObject,但这会出错,因为我的包装值与@StateObjectobjectType 不匹配,它需要是@987654324 @。
struct MyView: View {
@StateObject @Inject var VM:MyViewModel
var body: some View {
VStack{
Text("\(VM.A ?? 23)")
Button(action: {VM.B()}){
Text("click")
}
}
.onAppear{
VM.appear()
}
}
}
这是管理我的依赖注入的好方法吗?有可能吗?
【问题讨论】:
-
你应该使用
@State而不是@StateObject