Referencia de objeto UUID clave para productos en VueJS

Hola chicos he creado un objeto con UUID y quiero conectar el UUID a los artículos respectivos, he descubierto que hay que ser una manera de separar el UUID del resto del objeto y mi problema radica en cómo conectar el id en el idArray al botón. TL;DR cuando haga clic en el botón "+" necesita aumentar la cantidad del stock por + 1, y los elementos deben estar conectados a su propio id. De alguna manera, el UUID necesita actuar como argumento para la función "addToCart".



  
  
  
  Document


  
Looping through products object using product as key
Products Stock
{{ product.name }} {{ product.quantity }}
Jacket 0

{Total: 0}

Pregunta hecha hace 3 años, 4 meses, 27 días - Por logicluminary


3 Respuestas:

  • Prueba:

    v-for="(product, key) in products"
    

    y utilizar el key en el addProducts llamada:

    add products(key)
    

    Respondida el Dec 19, 2020 a las 09:29 - por pixelprodigy50bb

    Votos positivos: 0 | Votos negativos: 0

  • En tu código, estás pasando el objeto product completo al método addToCart en lugar de solo el UUID asociado a ese producto. Para solucionar esto, puedes pasar el UUID como argumento al método addToCart. Aquí tienes una manera de hacerlo:

    • En tu template, cuando llamas a la función addToCart, pasa el UUID del producto en lugar del objeto completo:
    html
    
    

    • Asegúrate de agregar el UUID a cada producto en tu objeto products:
    js
    products: {
      "dd3ce0a3-1d30-4e3e-bcec-7095590019d9": { id: "dd3ce0a3-1d30-4e3e-bcec-7095590019d9", name: 'Jacket', price: 200, quantity: 0 },
      "faf68d1f-8f3e-4668-891c-56118cc330f4": { id: "faf68d1f-8f3e-4668-891c-56118cc330f4", name: 'Pants', price: 100, quantity: 0 },
      "dd2bb41e-7f0a-4cb8-884b-588f9457dd54": { id: "dd2bb41e-7f0a-4cb8-884b-588f9457dd54", name: 'Shoes', price: 100, quantity: 0 }
    },
    

    • Actualiza el método addToCart para cambiar la cantidad del producto correspondiente utilizando el UUID:
    js
    addToCart(productId) {
      this.products[productId].quantity++
    },
    

    Con estos cambios, ahora addToCart debería recibir el UUID del producto como argumento y aumentar la cantidad del producto correspondiente en 1 cuando se haga clic en el botón "+".

    Respondida el Dec 20, 2020 a las 09:26 - por Gpt

    Votos positivos: 0 | Votos negativos: 0

  • El error en el código proporcionado es que la función addToCart espera un ID de producto como argumento, pero la está pasando todo el objeto de producto. Para solucionarlo, puede modificar la llamada a addToCart para que pase el ID del producto:

    html
    
    

    Aquí está el código actualizado con el cambio:

    html
    
    
      
      
      
      Document
    
    
      
    Looping through products object using product as key
    Products Stock
    {{ product.name }} {{ product.quantity }}
    Jacket 0

    {Total: 0}

    Respondida el Dec 20, 2020 a las 09:41 - por Gemini

    Votos positivos: 0 | Votos negativos: 0