使用SwiftUI PreviewProvider显示数组

时间:2019-10-28 19:53:27

标签: arrays json swiftui

感谢这里的帮助,我基本上可以正常运行,但是我不确定如何使SwiftUI的PreviewProvider显示数组“ myDataModels”的内容的正确语法。

这是我所拥有的:

import SwiftUI

struct Overview: View {
    var myDataModels: [MyDataModel]

    var body: some View {
        List {
            ForEach(myDataModels) { model in
                Section(header: Text("\(model.firstName) \(model.lastName)")) {

                    ForEach(model.cities, id: \.name) { (city: City) in

                        Section(header: Text(city.name).fontWeight(.bold)) {

                            ForEach(city.towns, id: \.name) { town in
                                Text(town.name)
                            }
                        }
                    }
                }
            }
        }
    }
}

哪个可以编译,但是我不确定在上述代码块正下方的PreviewProvider调用中引用myDataModels的正确方法是什么。这是我目前在那里的东西。

struct Overview_Previews: PreviewProvider {
    static var previews: some View {
        Overview(myDataModels: userData[0])
    }
}

userData是对JSON文件的引用。但是我得到了错误:

Cannot convert value of type 'MyDataModel' to expected argument type '[MyDataModel]'

任何帮助我们最感激的事情。

1 个答案:

答案 0 :(得分:0)

假设您已在某处定义了userData,就可以这样做

Overview(myDataModels: userData)

或者,如果您只想发送一个特定项目:

Overview(myDataModels: [userData[0]])

如果这不起作用,请发布您对userData的定义。