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)
我有一个 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)