首页 > 解决方案 > 我们如何使用可选的已发布变量?

问题描述

我得到了一个 ObservableObject-Class,它有一个可选的已发布 var,我将它提供给 ForEach,因为我没有初始化我的已发布,即使在我的应用程序 ForEach 的午餐后也不应该工作。没关系,我如何在我的代码中正确输入它?

struct PersonData: Identifiable
{
    let id  = UUID()
    var name: String
}


class PersonDataModel: ObservableObject
{
    @Published var persones: [PersonData]?
}


struct ContentView: View {
    
    @StateObject var personDataModel = PersonDataModel()
    
    var body: some View {

        HStack
        {
             ForEach( personDataModel.persones != nil ? personDataModel.persones! : [] ) { person in 
                 Text(person.name)  // ← : Here
             }
        }

    }
}

标签: swiftswiftuiobservable

解决方案


可能你想要这个

HStack
{
    ForEach(personDataModel.persones ?? [] ) { person in Text(person.name) }
}

推荐阅读