【问题标题】:Picker for optional data type in observable class in SwiftUI?SwiftUI 中可观察类中可选数据类型的选择器?
【发布时间】:2021-12-23 04:02:22
【问题描述】:

我有一个与Picker for optional data type in SwiftUI? 非常相似的问题。

不同之处在于,我在 oberable 类中引用了一个可选项。

我的代码如下:

enum Flavor: String, CaseIterable, Identifiable {
    case chocolate
    case vanilla
    case strawberry

    var id: String { self.rawValue }
}
class cl1: ObservableObject {
    @Published var fl: Flavor?
}
struct ContentView: View {
    @State private var selectedFlavor: cl1 = cl1()
    var body: some View {

        Picker("Flavor", selection: $selectedFlavor.fl) {
            Text("Chocolate").tag(Flavor.chocolate as Flavor?)
            Text("Vanilla").tag(Flavor.vanilla as Flavor?)
            Text("Strawberry").tag(Flavor.strawberry as Flavor?)
        }

            .padding()
    }
}

即使我遵循了其他答案,但一旦我使用类对象,它就会失败。

我需要进行哪些更改才能使其正常工作?

【问题讨论】:

    标签: swiftui observable optional picker


    【解决方案1】:

    当使用ObservableObject 时,您应该使用@StateObject 属性包装器而不是@State——这将允许您的View 关注ObservableObject@Published 属性的更新

    @StateObject private var selectedFlavor: cl1 = cl1()
    

    【讨论】:

    • 正确答案,我忘记了,
    猜你喜欢
    • 2020-04-08
    • 1970-01-01
    • 2020-05-20
    • 2013-11-14
    • 2023-01-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多