更改每个单品的数量

问题描述 投票:0回答:0

我无法增加每个单一产品的计数器,每次我点击 + 它也会更改所有其他产品的计数器,我该如何解决?我必须保留共享数据,因为我还有另外两个视图可以修改并且必须显示计数器!

我附上所有数量相等的图像,即使我只换一个

enter image description here

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)
                })
    }
}

我不能为每个产品单独计算柜台,现在我已经尝试了一切我需要你的帮助,非常感谢你!!!

swift swiftui counter product-quantity
© www.soinside.com 2019 - 2024. All rights reserved.