我无法增加每个单一产品的计数器,每次我点击 + 它也会更改所有其他产品的计数器,我该如何解决?我必须保留共享数据,因为我还有另外两个视图可以修改并且必须显示计数器!
我附上所有数量相等的图像,即使我只换一个
struct Product: Identifiable,Hashable {
var id = UUID().uuidString
var categoria: ProductType
var codice: String
var descrizione: String = ""
var prezzo: String
var immagine: String = ""
}
class SharedDataModel: ObservableObject {
@Published var cartProducts: [Product] = []
@Published var counterQ: Int = 0
func addToCart(product: Product) {
if !cartProducts.contains(where: {$0.id == product.id}) {
cartProducts.append(product)
}
counterQ += 1
}
func removeToCart(product: Product) {
if !cartProducts.contains(where: {$0.id == product.id}) {
cartProducts.append(product)
}
counterQ -= 1
}
struct ProductCardView: View{
@Binding var product: Product
@EnvironmentObject var sharedData: SharedDataModel
var body: some View{
Button (action: {
sharedData.removeToCart(product: product)
} , label: {
Image(systemName: "minus")
.frame(width: 25, height: 30)
.foregroundColor(.black)
})
Text("\(sharedData.counterQ)")
.frame(width: 25, height: 30)
Button(action: {
sharedData.addToCart(product: product)
} , label: {
Image(systemName: "plus")
.frame(width: 25, height: 30)
.foregroundColor(.black)
})
}
}
我不能为每个产品单独计算柜台,现在我已经尝试了一切我需要你的帮助,非常感谢你!!!