• 로그인
  • 장바구니에 상품이 없습니다.

home2 게시판 React 게시판 장바구니 중복 상품 관련 질문드립니다.

장바구니 중복 상품 관련 질문드립니다.

  • 이 주제에는 8개 답변, 3명 참여가 있으며 공쥬3 년, 2 월 전에 전에 마지막으로 업데이트했습니다.
9 글 보임 - 1 에서 9 까지 (총 9 중에서)
  • 글쓴이
  • #36200

    songhi
    참가자

    안녕하세요 선생님!

    이미 중복 상품 추가할 시에 새 항목 추가되지 않고 기존 담겨있는 상품 수량 증가시키는 문제 풀이 중 질문드립니다.

    주문하기 버튼 클릭 시 현재상품의id와 기존 카트에있는 데이터들의 id를 비교해주는 건 알겠는데.. 로직 구현이 잘 안됩니다ㅠㅠ

    현재 사진처럼 주문하기 클릭하고 확인 후 /cart 화면으로 이동 후 데이터 담기는 것 까진 진행이 되었습니다

    const cartConfirm = () => {
      state.cart.map((a,i)=>{
      //중복된 상품 없으면 추가
      if(state.cart[i].id ~어쩌구조건비교~){
        dispatch(addItem({ id:selProduct.id, name:selProduct.title, count:1 }));
        if(window.confirm("장바구니로 이동하시겠습니까?")){
          return (
              navigate('/cart')
          )
        } else {
          return null;
        }
       }
     //중복된 상품 있으면 수량증가
     })
    }

    이런식으로 map을 이용해 기존 cart에 담긴 데이터의 id들과 현재상품id를 비교해주면 될까요?

    includes함수와 find함수로 시도해보았으나 계속된 오류로 오랜시간 붙들고 있습니다..ㅎㅎ 조언 주시면 감사하겠습니다

     

    #36210

    codingapple
    키 마스터

    map 쓰려면

    변수하나 밖에 만들고 

    map 반복문 안에서 id같은 상품을 찾으면 변수를 true로 만들고

    변수가 true면 상품수량만 +1 해주세요 변수가 false면 상품추가해주세요 라고 코드짜면 될듯요 

    #36244

    songhi
    참가자

    기존 카트에있는 데이터 id(cartArr)와 현재상품페이지의 id(selProduct)를 비교하여 변수 dupValue값에 저장 후 콘솔에 

    두 값이 같으면 true, false 출력 확인했습니다.

    dupValue 값의 true, false 여부에 따라 수량증가, 항목 추가 함수를 명시해줬는데

    addQuantity(수량증가)해주는 곳에서 저 cart[i] 에서 i가 정의되지않았다고 오류가 나는데 잘 이해가 가지 않습니다..ㅠㅠ 

    #36261

    codingapple
    키 마스터

    i는 some 함수 안에 있어서 바깥에서 사용불가능합니다 

    some 대신 findIndex쓰면 내가 찾는게 몇번째 있는지 정수를 남겨줍니다 

    #36267

    songhi
    참가자

    해결했습니다 선생님 답변 감사합니다 ..!

    #36337

    공쥬
    참가자

    어떻게 푸셨나욤 !

    #36392

    songhi
    참가자

    some을 findIndex함수로 바꾸어주었습니다ㅎㅎ

    중복된 id가 있으면 그 해당 디테일 아이디 숫자가 남고, 중복된 id가 없으면 -1이 남습니다 

    그 dupValue값이 -1 와 같은지 비교해 일치하면 새 항목을 추가해주고, 그렇지 않으면 해당 id값에 수량 증가해주었습니다.

    #36424

    공쥬
    참가자

    감사합니다 ㅎ_ㅎ!!

    #36429

    공쥬
    참가자

    💜💜

9 글 보임 - 1 에서 9 까지 (총 9 중에서)
  • 답변은 로그인 후 가능합니다.

About

현재 월 700명 신규수강중입니다.

  (09:00~20:00) 빠른 상담은 카톡 플러스친구 코딩애플 (링크)
  admin@codingapple.com
  이용약관, 개인정보처리방침
ⓒ Codingapple, 강의 예제, 영상 복제 금지
top

© Codingapple, All rights reserved. 슈퍼로켓 에듀케이션 / 서울특별시 강동구 고덕로 19길 30 / 사업자등록번호 : 212-26-14752 온라인 교육학원업 / 통신판매업신고번호 : 제 2017-서울강동-0002 호 / 개인정보관리자 : 박종흠