Porque me sale este error?? &quot;Write operation failed: computed value is readonly&quot; Ayudaaa!! <code> const{ createApp, ref, reacti...

Luis Felipe Guarin Pastrana

Luis Felipe Guarin Pastrana

Pregunta
studenthace 4 años

Porque me sale este error??

"Write operation failed: computed value is readonly"

Ayudaaa!!

const{ createApp, ref, reactive, toRefs, watch, computed } = Vue; const app = createApp({ setup() { const products = ref([ { name: "Camara", price: 450_000, stock: 3, content: `Lorem ipsum dolor sit amet consectetur adipisicing elit. Deserunt atque dolorum corporis, reiciendis eaque temporibus quod magnam amet ea natus delectus? Aut placeat ipsam minus labore voluptas. Porro, vel aliquid!`, images: [ { image: "./img/camara.jpg", thumbnail: "./img/camara-thumb.jpg" }, { image: "./img/camara-2.jpg", thumbnail: "./img/camara-2-thumb.jpg" } ], offer: true, new: true, quantity: 1 }, { name: "Microfono", price: 950_000, stock: 3, content: `Lorem ipsum dolor sit amet consectetur adipisicing elit. Deserunt atque dolorum corporis, reiciendis eaque temporibus quod magnam amet ea natus delectus? Aut placeat ipsam minus labore voluptas. Porro, vel aliquid!`, images: [ { image: "./img/camara.jpg", thumbnail: "./img/camara-thumb.jpg" }, { image: "./img/camara-2.jpg", thumbnail: "./img/camara-2-thumb.jpg" } ], offer: true, new: true, quantity: 1 }, { name: "Camara PL", price: 250_000, stock: 2, content: `Lorem ipsum dolor sit amet consectetur adipisicing elit. Deserunt atque dolorum corporis, reiciendis eaque temporibus quod magnam amet ea natus delectus? Aut placeat ipsam minus labore voluptas. Porro, vel aliquid!`, images: [ { image: "./img/camara.jpg", thumbnail: "./img/camara-thumb.jpg" }, { image: "./img/camara-2.jpg", thumbnail: "./img/camara-2-thumb.jpg" } ], offer: true, new: true, quantity: 1 }, { name: "Audifonos PL", price: 750_000, stock: 5, content: `Lorem ipsum dolor sit amet consectetur adipisicing elit. Deserunt atque dolorum corporis, reiciendis eaque temporibus quod magnam amet ea natus delectus? Aut placeat ipsam minus labore voluptas. Porro, vel aliquid!`, images: [ { image: "./img/camara.jpg", thumbnail: "./img/camara-thumb.jpg" }, { image: "./img/camara-2.jpg", thumbnail: "./img/camara-2-thumb.jpg" } ], offer: true, new: true, quantity: 1 } ]); const cartState = reactive({ cartOpen: false, cart: [], total: computed(()=> { return cartState.total = cartState.cart.reduce((prev, curr) => { const prevPrice = prev.price || prev; const prevQuantity = prev.quantity || 1; return prevPrice * prevQuantity + curr.price * curr.quantity; }, 0); }) /* total: 0 */ }); /* const total = computed(()=>{ return cartState.total = cartState.cart.reduce((prev, curr) => { const prevPrice = prev.price || prev; const prevQuantity = prev.quantity || 1; return prevPrice * prevQuantity + curr.price * curr.quantity; }, 0); }) */ function addToCart(product) { const prodIndex = cartState.cart.findIndex(prod => prod.name === product.name); if (prodIndex >= 0) { cartState.cart[prodIndex].quantity += 1; } else { cartState.cart.push(product); } product.stock -= 1; } /* watch(cartState.cart, (value, oldValue) => { cartState.total = cartState.cart.reduce((prev, curr) => { const prevPrice = prev.price || prev; const prevQuantity = prev.quantity || 1; return prevPrice * prevQuantity + curr.price * curr.quantity; }, 0); }) */ return { ...toRefs(cartState), addToCart, products }; } });
1 respuestas
para escribir tu comentario
    Cristhian Daza

    Cristhian Daza

    studenthace 4 años

    El código lo veo igual al del profesor, seria mirar el código donde se esta renderizando la propiedad computed

Curso de Introducción a Vue.js 3

Curso de Introducción a Vue.js 3

Crea componentes con Vue.js 3 gestionando estados y props para comunicar información del padre al hijo. Emite eventos personalizados y usa observadores, propiedades computadas y ciclos de vida para lograr reactividad total en tus proyectos.

Curso de Introducción a Vue.js 3
Curso de Introducción a Vue.js 3

Curso de Introducción a Vue.js 3

Crea componentes con Vue.js 3 gestionando estados y props para comunicar información del padre al hijo. Emite eventos personalizados y usa observadores, propiedades computadas y ciclos de vida para lograr reactividad total en tus proyectos.