Vuex,Vuejs如果语句为真,则不执行任何操作

时间:2020-09-02 09:51:55

标签: vue.js vuex

所以我的Vuex中有ADD_TO_CART突变。 但是我希望用户只能将每个项目添加到购物车一次。 因此,我知道我需要执行if语句来检查产品是否已经在购物车中,但是我不知道语法以及如何编写它。

这是我的Vuex:

import Vue from 'vue'
import Vuex from 'vuex'

Vue.use(Vuex)

export default new Vuex.Store({
  state: {
    cart: [],
  },
  getters: {
    countOfCartProducts: state => {
      return state.cart.length
    },
    myCart: state => {
      return state.cart
    },
    getTotal: state => {
      return state.cart.reduce((total, lineItem) => Number(total) + Number(lineItem.price), 0);
    }
  },
  mutations: {
    ADD_TO_CART: (state, product) => {
      if () {

      }
      else {
        state.cart.push(product)
      }
    },
    REMOVE_FROM_CART: (state, product) => {
      state.cart.splice(product, 1)
    }
  },
  actions: {

  },
  modules: {
  }
});

1 个答案:

答案 0 :(得分:0)

ADD_TO_CART: (state, product) => {
      if (state.cart.findIndex(item => item.id === product.id) !== -1) {
        return
      }
      else {
        state.cart.push(product)
      }
    },

这正在起作用,谢谢大家!