語境
我有一個用( )SwiftUI View初始化的。這本身有一個. 我現在正在嘗試使用內部本身,但是無法掌握它。ViewModelObservable ObjectViewModelGeneric TypeGeneric TypeViewModelView
代碼
class ComponentViewModel<C: Component>: ObservableObject { ... }
struct SomeView: View {
@ObservedObject var componentVM: ComponentViewModel
init(with componentVM: ComponentViewModel) {
componentVM = componentVM
}
var body: some View {
switch componentVM.C.self { ... } // This does not work.
}
問題
- 在這種情況下,我該如何使用
Generic Typeof ?Types PropertycomponentVM
uj5u.com熱心網友回復:
您還需要使您的 View 通用
struct SomeView<ModelType: Component>: View
然后ModelType在代碼中使用來參考視圖模型的泛型型別
struct SomeView<ModelType: Component>: View {
@ObservedObject var componentVM: ComponentViewModel<ModelType>
init(with componentVM: ComponentViewModel<ModelType>) {
self.componentVM = componentVM
}
var body: some View {
switch ModelType.self {
//...
}
}
}
uj5u.com熱心網友回復:
你應該像這樣宣告你的componentVM:
@ObservedObject var componentVM: ComponentViewModel<SomeSolideType>
SomeSolidType 應該是一些符合您的組件協議的類/結構。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/516365.html
