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

home2 게시판 React 게시판 장바구니 기능 만들기 관련

장바구니 기능 만들기 관련

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

    김채령
    참가자

    선생님 장바구니 만들기 수량 +1기능 만들기 버튼에서요

    1. dispatch(addCount(i)) 이 코드를 치면 수량은 +1씩 증가하지만 첫 번째 데이터만 수량이 +1씩 증가하고

    2번째 데이터는 반응이 없습니다

    바로 위에 changeName 이름 변경하는 버튼은 모든 버튼이 다 동작하는데 이 코드는 왜  첫 번째 데이터만 인식하는 건지 모르겠습니다

    2. id에 맞는 상품 버튼 수량을 +1 해주기 위해서 dispatch(addCount(state.count[i].id)) 이 코드를 치면   

    이 코드는 아예 버튼이 동작하지 않습니다. 혹시 제가 바로 위에

    <button onClick={()=>{
        dispatch(ChangeName())
    }}>이름변경</button> 이름 변경 버튼도 같이 만들어놔서 그런건지 모르겠습니다

    이 코드 또한 변경하기 버튼 2개에서 모두 동작합니다
    따로 오류가 뜨지도 않고 버튼만 제대로 동작하지 않는 상황입니다. 제가 어떤걸 빠트린 걸까요?

     

    Cart.js파일

    import { ChangeName, increase } from './../store/userSlice.js'
    import { addCount } from './../store.js'

    <tbody>
            { state.cart.map((a, i)=>
              <tr key={i}>
                <td>{state.cart[i].id}</td>
                <td>{state.cart[i].name}</td>
                <td>{state.cart[i].count}</td>
                <td><button onClick={()=>{
                  dispatch(ChangeName())
                }}>이름변경</button>
                </td>
    <td>
    <button onClick={()=>{
    dispatch(addCount(state.count[i].id))
    }}>수량+1</button>
    </td>
    </tr>  
    )
    }
    </tbody>

     

    store.js 파일

    let cart = createSlice({
      name : 'cart',
      initialState : [
        {id : 0, name : 'White and Black', count : 2},
        {id : 2, name : 'Grey Yordan', count : 1},
      ],
      reducers : {
        addCount(state, action){
          let 번호 = state.findIndex((a)=>{ return a.id === action.payload})
          state[번호].count++
        },
        addItem(state, action){
          state.push(action.payload)
        }
      }
    })

    export let {addCount, addItem} = cart.actions

    #34330

    codingapple
    키 마스터

    addCount(state.cart[i].id) 로 해봅시다 

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

About

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

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

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