본문 바로가기

Vue.js/vuex - forEach 사용시 주의

vuex의 state 사용법 및 forEach 주의

728x90

1.vuex에서 store의 사용법은 state.cart 이렇게한다.

2. 이렇게 작성하면 forEach의 첫 번째 if문이 참이되면 state.cart.push 구문이 여러 번 반복 시행

PUT_GOODS_InCART(state, prodToBeIncludedInCart){

  
    state.cart.forEach(prodInCart => {      /* forEach의 첫 번째 if문이 참이되면 state.cart의 요소 개수 만큼 실행!!    */ 
      if(prodInCart.id !== prodToBeIncludedInCart.id){
        state.cart.push(prodToBeIncludedInCart)
      } else if(prodInCart.id === prodToBeIncludedInCart.id){
        prodInCart.options.forEach(opInCart => {
          prodToBeIncludedInCart.options.forEach((opToBeIncludedInCart) => {
            if(opInCart.value === opToBeIncludedInCart.value){
              opInCart.quantity += opToBeIncludedInCart.quantity;
            } else if(opInCart.value !== opToBeIncludedInCart.value){
              prodInCart.options.push(opToBeIncludedInCart)
            }
          })
        })
      }
    })

        
 }

2. 수정

728x90