Rumah > Soal Jawab > teks badan
P粉2587888312023-08-30 00:18:04
Jika anda melakukannya dengan betul, ia akan berkesan.
Tetapi anda perlu menggunakan functions()
而不是 lambda
,因为 lambda
没有上下文,并且 this = window
kod>
const addProduct = function() { //this should be the instance of the cart composable? products.value.push({item: "Baseball Cap", quantity: 1, cart: this}) }
Tetapi saya menghadapi masalah menggunakan konteks this
dalam atribut .cart.
serupa dengan cart.products.value[0].cart.products
. Ia hanya tidak berfungsi.
Saya cadangkan anda memikirkan semula reka bentuk. Saya tidak akan berbuat demikian.
Lihat taman permainan. Kali kedua ialah tingkap.
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>