![](/img/trans.png)
[英]I can't create a function in PGSQL via concat to get data in a loop over all json
[英]Can't get ForEach loop to function with nested JSON data in SwiftUI
在尝试使用 ForEach 在我的服务 model 数据中的联系人上创建一个列表时,我真的是在拉扯我的头发(而且我一开始并不多)。
model如下;
struct ServiceContract: Codable, Identifiable {
let id: String
let name: String
let latitude: Double
let longitude: Double
let maplogo: String
let customerName: String
let postcode: String
let serviceCompany: String
let projectNumber: Int
let renewalDate: String
let contractTerm: Int
let annualValue: Double
let paymentTerms: String
let relationship: String
let geuOEM: String
let additionalSpendToDate: Double
let type: String
let contacts: Contacts
let service: [String]
let notes: String
// Computer Property
var location: CLLocationCoordinate2D {
CLLocationCoordinate2D(latitude: latitude, longitude: longitude)
}
}
struct Contacts: Codable {
let contact: [Contact]
}
struct Contact: Codable {
let contactFirstName: String
let contactLastName: String
let contactNumber: String
let contactEmailAddress: String
}
所以基本上每个服务合同(确实符合 Identifiable)可以有多个联系人。 这是通过使用几个额外的结构来实现的。
那么问题来了。 我想简单地为特定服务合同创建每个联系人的列表,但我无法将 ForEach 获取到 function,因为使用.id 不起作用,我不能像这样使用 serviceContract.contacts.contact不符合可识别的。
有任何想法吗?
以下代码摘录;
VStack {
ForEach(serviceContract.contacts.contact) { cont in
Text("\(cont.contactFirstName)")
} //: LOOP
}
serviceContract.contacts
中的每个联系人都必须是唯一的。 如果contactNumber
是唯一的,那么您可以这样做
ForEach(serviceContract.contacts.contact, id: \.self.contactNumber)
如果Contact
中没有一个字段是唯一的,那么你可以让整个Contact
符合Hashable
(这将需要一些额外的代码),然后使用整个Contact
实例作为标识符:
ForEach(serviceContract.contacts.contact, id: \.self)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.