Я относительно новичок в SwiftUI и время от времени получаю ошибки и решаю их путем поиска по inte rnet, но на этот раз я не смог найти решения своей проблемы и решил обратиться за помощью сюда, стек переполнение. Я надеюсь, что код ниже поможет вам найти мою проблему.
Обе мои структуры являются Идентифицируемыми, и я фактически использовал структуру ShoppingList в одном и том же представлении, чтобы создать его Список с использованием той же техники, и она работает без ошибок. Но когда я пытаюсь использовать ForEach для переменной структуры ShoppingList (которая также является структурой и соответствует протоколу Identifiable), я получаю эту ошибку «Тип выражения неоднозначен без дополнительного контекста»
Это вид, что я получаю свою ошибку:
struct ListDetailView: View {
@EnvironmentObject var session: SessionStore
var item: ShoppingList
@State private var isAddNewViewActive: Bool = false
var body: some View {
List {
Section(header: Text("Products")) {
ForEach(self.item.products, id: \.id) { product in <<<--- ERROR LINE
Text(product.name)
}
}
Section(header: Text("")) {
Button(action: { self.isAddNewViewActive.toggle() } ) {
Text("Click to add new product")
}
}
}
.listStyle(GroupedListStyle())
.navigationBarTitle(self.item.name)
.sheet(isPresented: $isAddNewViewActive) {
AddNewItemView(session: self.session, item: self.item, isViewActive: self.$isAddNewViewActive)
}
}
}
Это структуры, которые находятся в коде
struct ShoppingList: Identifiable, Equatable {
var id: UUID
var name: String
var coverPhoto: String
var products: [Product]
init(id: UUID = UUID(), name: String, coverPhoto: String = "cart", products: [Product] = [Product]()) {
self.id = id
self.name = name
self.coverPhoto = coverPhoto
self.products = products
}
mutating func addProduct(product: Product) {
products.append(product)
print(products)
}
}
struct Product: Identifiable, Equatable {
var id: UUID
var name: String
var brand: String
var imageURL: String
var links: [Int: String]
var description: String
init(id: UUID = UUID(), name: String, brand: String = "", imageURL: String = "", links: [Int: String] = [:], description: String = "") {
self.id = id
self.name = name
self.brand = brand
self.imageURL = imageURL
self.description = description
self.links = links
}
}
Заранее спасибо всем StackOverflow сообщество.