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

home2 게시판 React 게시판 redux 4 강의 관련 질문이 있습니다.

redux 4 강의 관련 질문이 있습니다.

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

    이은혜
    참가자

    강의 내용을 다 듣고 나서 같은 항목을 추가 했을 때,

    장바구니에 새로 추가되는 것이 아닌 수량만 추가되게 하는 부분을 적용했습니다.

    이런 방법, 저런 방법 테스트 해봤는데

    기능적으로는 잘 되긴 하지만 이런 코드 방식이 맞는 건가 싶어서요..

     

    function reducer(state = 초기값, 액션) {
      if ( 액션.type === '항목추가') {
        let copy = [...state];
        let index;
        
        copy.map( (el)=> {
          if ( el.id === 액션.payload.id) {
            index = copy.indexOf(el);
          }
        });

        if ( index ) {
          copy[index].quan++;
        } else {
          copy.push(액션.payload);
        }
        
        return copy;
      }

     

    copy를 콘솔로그로 보면 배열 안에 오브젝트로 되어 있어서 

    기존에 추가된 항목이 배열의 몇 번째 인지 확인이 어려워 map 함수로

    기존 state 에서 아이디 값들 중에 내가 클릭한 상품의 아이디 값이 있는 지 확인을 하고

    그 해당 아이디 값이 있을 때 copy의 배열 순서를 저장해뒀다가

    if문으로 수량 증가 또는 push를 해주었습니다.

     

    코드 리뷰 부탁드립니다..!!

     

     

     

     

    #14269

    codingapple
    키 마스터

    정확한 코드인데요

    array에서 원하는 항목 쉽게 찾으려면 find 라든지 여러가지 함수가 있는데

    그런거 쓰면 코드가 더 짧아질 수도 있습니다

    #14299

    이은혜
    참가자

    넵 감사합니다 🙂

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

About

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

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

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