vue 如何给 getter 传递参数?

How to send a parameter to getters in vue?

我有一个 getter 来检查购物车的产品库存和数量。所以这是我的 getters.js:

export const checkStock = (state, productID) => {
    let stockAvailable = true;
    state.cart.forEach(item => {
        if(item.product.id == productID) {
            if(item.product.attributes.stock <= item.amount){
                stockAvailable = false;
            }
        }
    })
    return stockAvailable;
}

如您所见,我将 productID 作为参数发送到此函数。然后在 Product 组件中,我调用了这个函数,我想将 productID 添加到这个函数中,但我不知道怎么做。

checkStockAvailability(productId) {
            return this.$store.getters.checkStock;
        },

那么你认为我可以如何将 productID 添加到我的 getter 函数中?

您可以通过返回 returns 结果的函数在 getter 中使用参数:

export const checkStock = (state) => (productId) => {
    // call the checkStockAvailability here
    let stockAvailable = true;
    state.cart.forEach(item => {
        if(item.product.id == productID) {
            if(item.product.attributes.stock <= item.amount){
                stockAvailable = false;
            }
        }
    })
    return stockAvailable;
}

// then you can use this getter on the component as

const productId = 2;
store.getters.checkStock(productId)