2 回答
TA贡献1864条经验 获得超6个赞
请了解如何提供最小的可重现示例:https://stackoverflow.com/help/minimal-reproducible-example
最好提供一个 jsfiddle 或 codesandbox 来演示您的问题。
您不应该更改作为 a 传递的内容prop
(阅读“单向流”)。
将您的orders
数组作为当前组件中的本地数据对象或来自此组件的事件,并通过侦听此事件处理实际添加到父购物车的操作$emit
。addToCart
假设您orders
在本地数据对象中:
data() {
return {
orders: [
{ id: 'exists', quantity: 1 }
]
}
},
methods: {
addToCart(product) {
let exists = this.orders.find(p => p.id == product.id)
if(exists == -1) { // doesn't exists yet
this.orders.push(product)
} else {
this.orders[exists].quantity++
}
}
}
TA贡献1876条经验 获得超7个赞
检查订单中的值,如果它返回长度大于 0 的数组,则表示产品已添加,否则产品不存在。
<template>
<div v-for="(product,index) in products" :key="index">
<div>Name : {{ product.name }} </div>
</div>
<button @click="handleAdd({id:20})">Add</button>
</template>
props: {
products: Array,
orders: Array,
}
methods: {
handleAdd(product){
const check = this.orders.filter(item => item.id === product.id)
if(check.length === 0){
orders.push(product)
} else {
// other thing
}
}
}
添加回答
举报