[英]Trying to call from a nested array in a SwiftUI view
所以我有一个 model [UserModel] 和嵌套的 arrays [CityModel] 和那个 [TownModel]。 我很确定 model 设置正确,但我认为尝试引用嵌套 arrays 时语法错误。
这是我的 UserModel.swift:
import SwiftUI
struct UserModel: Codable, Identifiable {
let id: Int
let firstName: String
let lastName: String
let cities: [CityModel]
enum CodingKeys: String, CodingKey {
case id
case firstName = "first_name"
case lastName = "last_name"
case cities
}
}
struct CityModel: Codable {
let name: String
let towns: [TownModel]
}
struct TownModel: Codable {
let name: String
}
问题出现在我的 CityRow.swift 中,我只想显示一个城市的名称(这样我就可以在 CityList 中调用它并显示一个用户下的所有城市)。
struct CityRow: View {
var city: [UserModel.CityModel]
var body: some View {
VStack(alignment: .leading) {
Text(city.name)
.font(.headline)
}
}
}
struct CityRow_Previews: PreviewProvider {
static var previews: some View {
CityRow(city: userData[0])
}
}
但是在尝试写出我的“城市”变量时出现此错误。
'CityModel' is not a member type of 'UserModel'
我确定我的“var city: [UserModel.CityModel]”语法不正确,但不知道该怎么做?
您的 CityRow 需要一个城市才能说出它的名字。 CityModel 不是 UserModel 的成员,但城市是。 我不知道您的应用程序或您想要实现的目标,但例如在列表中您想要展示阵列中的每个城市。 您的 CityRow 需要var city: CityModel
作为构造函数。 它可能看起来像这样(同样,我不知道您要实现什么,更多信息/代码会有所帮助。)。
这是您的 CityRow
struct CityRow: View {
var city: CityModel
var body: some View {
VStack(alignment: .leading) {
Text(city.name)
.font(.headline)
}
}
}
这是您可以在列表或其他内容中使用的 ForEach 循环
ForEach(user.cities) {city in
CityRow(city: city)
}
如果您可以使用更多代码来编辑您的问题,例如呈现所有 CityRows 的视图,那将会很有帮助!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.