【发布时间】:2021-12-06 06:28:29
【问题描述】:
我将我的购物车存储在 Vuex 中,并通过 API 调用将产品添加到购物车中。我要做的是根据每种产品的库存,我想禁用 API 调用。所以在我的 getetrs 中:
export const checkStock = (state) => {
let stockAvailable = true;
state.cart.forEach(item => {
if(item.product.attributes.stock <= item.amount){
stockAvailable = false;
}
})
return stockAvailable;
}
我正在检查库存以及库存是否正确。 在我进行 API 调用并将产品添加到购物车的产品组件中,我从 getters.js 文件中获取 checkStock 函数:
checkStockAvailability() {
return this.$store.getters.checkStock;
},
addToCart: function () {
this.amount = this.itemsCount !== "" ? this.itemsCount : 1;
if(this.variationId != null) {
this.warningMessage = false;
if(this.checkStockAvailability()) {
cartHelper.addToCart(this.product.id, this.variationId, this.amount, (response) => {
this.$store.dispatch('addProductToCart', {
product: this.product,
variation: this.variationId,
amount: parseInt(this.amount)
})
});
}
} else {
this.warningMessage = true;
}
},
所以这2个函数的作用是:例如,我添加有5只股票的产品1,一旦我添加了这5只,我就不能再添加更多了,这也是正确的。但我也不能添加有足够库存的产品 2。 所以我认为我需要将我的 checkStock 功能更改为产品,但我不知道该怎么做。所以请看看我的问题,让我知道任何建议。
【问题讨论】:
-
“但我不能同时添加有足够库存的产品 2”。那么,如果您有 5 个产品 A 和 5 个产品 B,那么您可以添加 5 个产品 A 但您不能添加任何产品 B(即使您有产品 B 的库存)?你的措辞有点混乱
-
是的,就是这样
-
换句话说:
if I have added all stock products for any product, then I can't add any other product in my cart? -
例如产品 A 有 5 个库存,产品 B 有 6 个库存,如果我添加 5 次产品 A,则无法添加产品 B。另一种情况,如果我添加 3 次产品 A,我可以添加 6 次产品 B,但这一次,我不能再添加任何东西。因此,checkStock 对一种产品为假,而对其他产品再也不会为真
-
@Javier M 回答你的问题了吗?
标签: javascript vue.js vuejs2 vue-component vuex