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

home2 게시판 React 게시판 리덕스로 장바구니 같은 항목추가 시 개수만 1 증가시키기

리덕스로 장바구니 같은 항목추가 시 개수만 1 증가시키기

6 글 보임 - 1 에서 6 까지 (총 6 중에서)
  • 글쓴이
  • #62188

    김지우
    참가자
    안녕하세요 선생님 장바구니 추가가 분명 잘 동작했던 것 같은데
    이상한 오류가 다시 등장해서 염치불구하고 오랜만에 찾아 뵙습니다ㅠㅠ
    
    상품을 하나 추가하고 장바구니 페이지에서 홈 버튼으로 뒤로 간 뒤 
    (저번에 홈버튼이 새로고침을 못하게 한번 바꿨었는데 그게 원인이었을까요)
    똑같은 상품을 추가하면 아래처럼 새로운 항목 1개로 추가가 됩니다
    
    
    
    아래처럼 addItem 에서 if 문 조건을 여러번 손봤지만
    제대로 quan++; 을 해주지 못하더군요
    if ( found >= 0 && state.includes(action.payload) ) 등등 써봤지만 끝내 해결하지 못했습니다
    어떻게 해야 이미 있는 항목은 quan++ 을 시켜줄 수 있을까요?
    
    
    #62197

    codingapple
    키 마스터
    버튼누르면 found라는 변수부터 의도대로 잘 나오나 출력해봅시다
    #62241

    김지우
    참가자
    친절한 답변 감사합니다 선생님! 말씀하신대로
    let found = state.findIndex((a)=>{return a.id === action.payload})
     console.log(found);
    이렇게 콘솔에 found 띄우는 한줄 추가했고
    장바구니 추가 버튼 누르니 -1 이 뜹니다
    
    dispatch로 잘 보내줬는데 addItem에서는 왜 그런걸까요..?
    
    혹시 몰라 아래 addCount 에도 한번 console.log(found)를 넣어보니 
    다른 항목들을 장바구니에 넣어서 +1 주황버튼을 누르면
    1번째 항목의 +1 누를 때마다 콘솔에 0이 찍히고
    2번째는 콘솔에 1
    3번째는 콘솔에 2 라고 뜹니다
    
    
    
    #62271

    codingapple
    키 마스터
    그럼 found 변수 만드는 코드안에 의심스러운 것들도 출력해보면 됩니다 
    등호 3개말고 2개 써봅시다
    #62304

    김지우
    참가자
    선생님 덕분에 해결했습니다
    이번에 의심스러운 것들을 콘솔에 하나하나 띄워보는 게 정말 중요하다는 걸 배웠습니다
    
    addItem 에서는 장바구니버튼 dispatch로 보냈던 action.payload는 
    dispatch(addItem({_id: 찾은상품._id, id: 찾은상품.id, name: 찾은상품.title, quan: 1})); 이렇게 생긴 객체라 
    found 변수 만드는 코드에 action.payload.id를 써야 제대로 동작하고
    
    addCound 와 subCount 에서는 a.id 로 보냈어서
    그냥 action.payload 로 써야했습니다
    
    이번에도 정말 감사드립니다!
    
    
    
    #63022

    송희환
    참가자
    이 글 덕에 해결되긴 했는데.. 아직 개념정리가 안되네요 ㅠㅠ
6 글 보임 - 1 에서 6 까지 (총 6 중에서)
  • 답변은 로그인 후 가능합니다.

About

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

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

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