본문 바로가기
교육후 개인공부/TroubleShooting

[TroubleShooting] cart의 수량이 마이너스로 간다....

by 뭉지야 2024. 5. 22.
728x90

배포후 친구가 cart의 수량이 마이너스로 간다는 오류를 발견해주었다.

코드를 어떤식으로 변경할까 생각을 했다.

일단 액션생성함수에서 코드를 바꿔야하는데 이걸 어떤식으로 변경할까...

기존코드는 이렇게 되어있었다.

import { createSlice } from "@reduxjs/toolkit";
import type { PayloadAction } from "@reduxjs/toolkit";

export interface Icart {
  id: number;
  product: string;
  price: number;
  count: number;
}

const initialState: Icart[] = [
  {
    id: 1,
    product: "홍해인자켓",
    price: 20000,
    count: 1,
  },
  {
    id: 6,
    product: "티모시자켓",
    price: 20000,
    count: 1,
  },
];

export const CartState = createSlice({
  name: "cart",
  initialState,
  reducers: {
    countDown: (state, action) => {
     state[action.payload].count--;
    },
  },
});
export const { countDown } = CartState.actions;

 

 state[action.payload].count-- 이걸 console찍으니까 감소하기 전 숫자가 출력되었다.

그래서 이렇게 코드를 변경하였다.

{
        state[action.payload].count-- >= 2
          ? state[action.payload].count
          : (alert("0이하는안돼요"));
      }

 

그랬더니 alert다음에 -1이 count값으로 출력이 되었다.

그래서 최종코드는 

{
        state[action.payload].count-- >= 2
          ? state[action.payload].count
          : (alert("0이하는안돼요"), state[action.payload].count++);
      }

 

이렇게 하여 완성!!

 

항상 세세하게 확인하고, 사용자의 입장에서 세세하게 살피자!

728x90