Невозможно выбрать компоненты в представлении, которое является частью списка swiftUI - PullRequest
0 голосов
/ 04 августа 2020

У меня есть представление корзины, которое содержит список, а в списке есть представление оплаты. Моя проблема в том, что я не могу выбрать что-либо в представлении оплаты, если он является частью списка. Я не могу ввести имя или данные карты на экране ниже, они не могут быть выбраны

cartViewImage

Если я удалю список и заменю его на VStack, он работает хорошо, но это не выглядит хорошо, потому что нет настроек размера Dynami c, которые вы получаете со списком. ScrollView также приводит к невозможности выбора полей.

Может ли кто-нибудь объяснить мне, почему это происходит?

struct CartView: View {
    
    @ObservedObject var cart = CartStore()
    @State var newItemAddedToCart: Product?
    
    
    var body: some View {
        
        
        //VStack{
            List{
                
                ForEach(cart.itemsInShoppingCart, id: \.self) { cartItem in
                    VStack{
                        HStack{
                            URLImage(cartItem.productImageURLs[0]) { proxy in
                                proxy.image
                                    .renderingMode(.original)
                                    .resizable()
                                //.frame(width: 230, height: 300)
                            }
                            Text("\(cartItem.productName)")
                            Text("€" + String(format : "%0.2f", cartItem.productPrice))
                            Text("\(cartItem.customerQuantity)")
                            Spacer()
                            Button(action: {
                                self.removeItemFromCart(productToRemove: cartItem)
                            }){
                                Image(systemName: "trash")
                            }
                        }.frame(height: 120)
                       
                    }
                }
                Divider()
                PaymentView()
            }.onAppear(perform: loadCart)
                .environment(\.defaultMinListRowHeight, 120)
        //}
    }  
struct PaymentView: View {
    
    @ObservedObject var cart = CartStore()
    
    var body: some View {
    
        VStack{
            StripeCheckoutView()
                .frame(height: 190)
            VStack{
                Spacer()
                HStack{
                    Text("Total")
                    Spacer()
                    Text("€" + String(format : "%0.2f", cart.calculateTotalCost()))
                }
                NavigationLink(destination: EmptyView()){
                    Text("Buy")
                        .frame(width: 200, height: 30, alignment: .trailing)
                        .font(.custom("SanFranciscoDisplay-Black", size: 20))
                        .foregroundColor(.primary)
                        .padding([.leading, .trailing], 10)
                        .padding([.top, .bottom], 5)
                        .background(Color("Primary Green"))
                        .cornerRadius(10)
                        .shadow(radius: 10)
                }.padding(.top)
                
            }
        }
    
        
    }
}
...