Maison > Questions et réponses > le corps du texte
P粉2587888312023-08-30 00:18:04
Si vous le faites correctement, cela fonctionnera.
Mais vous devez utiliser functions()
而不是 lambda
,因为 lambda
没有上下文,并且 this = window
code>
const addProduct = function() { //this should be the instance of the cart composable? products.value.push({item: "Baseball Cap", quantity: 1, cart: this}) }
Mais j'ai du mal à utiliser le contexte this
dans l'attribut .cart.
est similaire à cart.products.value[0].cart.products
. Cela ne fonctionne tout simplement pas.
Je vous propose de repenser le design. Je ne ferai pas ça.
Découvrez l'aire de jeux. La deuxième fois, c'est la fenêtre.
const { ref } = Vue;
const useCart = function() {
const products = ref([])
const addProduct1 = function() {
//this should be the instance of the cart composable?
products.value.push({item: "Baseball Cap", quantity: 1, cart: this})
}
const addProduct2 = () => {
//this should be the instance of the cart composable?
products.value.push({item: "Baseball Cap", quantity: 1, cart: this})
}
return {
products,
addProduct1,
addProduct2
}
}
const cart = useCart();
cart.addProduct1();
console.log(cart.products.value[0].cart)
cart.addProduct2();
console.log(cart.products.value[1].cart)
<script src="https://cdn.jsdelivr.net/npm/vue@3/dist/vue.global.prod.js"></script>