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

home2 게시판 React 게시판 Redux 5 : 장바구니 기능 만들기 숙제

Redux 5 : 장바구니 기능 만들기 숙제

  • 이 주제에는 4개 답변, 2명 참여가 있으며 현정2 년, 10 월 전에 전에 마지막으로 업데이트했습니다.
5 글 보임 - 1 에서 5 까지 (총 5 중에서)
  • 글쓴이
  • #49711

    현정
    참가자
    Redux5 장바구니 기능 숙제2번 먼저 할려고 하던도중 계속 아래의 오류가 나서 질문드립니다.
    Detail.js:68 Uncaught TypeError: (0 , _Store__WEBPACK_IMPORTED_MODULE_4__.addCartItem) is not a function
        at onClick (Detail.js:68:1)
    에러내용으로 봐선 addCartItem state변경함수를 인식 못하는거 같은데 이유를 모르겠습니다ㅠ
    [store.js]
    import { configureStore, createSlice } from '@reduxjs/toolkit';
    
    let cartList = createSlice({
        name:'cartItem',
        initialState:[
            {id : 0, name : 'White and Black', count : 2},
            {id : 2, name : 'Grey Yordan', count : 1}
        ],
        reducers : {
            addCartItem(state,action){
                state.push(action.payload)
            }
        }
      })
      export default configureStore({
        reducer: {
            user : user.reducer,
            stock: stockRedux.reducer,
            cartList: cartList.reducer,
            //log 찍히는 name부분
        }
      })
      export let { addCartItem} = user.actions
    
    [detail.js]
    
    import { useDispatch, useSelector} from 'react-redux';
    import { addCartItem } from './Store';
    
    function Detail(props){
        let {id} = useParams()
        console.log(id);
        let OriginProduct = props.shoes.find(function(product){
            return product.id == id
        })
        console.log(OriginProduct);
        let state = useSelector((state)=> { return state})
        console.log(state.cartList);
        let dispatch = useDispatch()
    
        return(
            <div className="container">
                <input onChange={(e)=> { setNum(e.target.value)}}/>
                {
                    alert == true
                    ? <div className="alert alert-warning">
                        2초이내 구매시 할인
                      </div>
                    : null
                }
              <div className="row">
                <div className="col-md-6">
                  
                </div>
                <div className="col-md-6">
                  <h4 className="pt-5">{OriginProduct.title}</h4>
                  <p>{OriginProduct.content}</p>
                  <p>{OriginProduct.price}원</p>
                  <p>{stock}</p>
                  <button onClick={()=> {
                    dispatch(addCartItem({id : 1, name : 'Red Knit', count : 1} ))
                }}>버튼</button>
                </div>
              </div>
              <Nav variant="tabs"  defaultActiveKey="link0">
                    <Nav.Item>
                    <Nav.Link eventKey="link0" onClick={()=>{ setTab(0) }}>버튼0</Nav.Link>
                    </Nav.Item>
                    <Nav.Item>
                    <Nav.Link eventKey="link1" onClick={()=>{ setTab(1) }}>버튼1</Nav.Link>
                    </Nav.Item>
                    <Nav.Item>
                    <Nav.Link eventKey="link2" onClick={()=>{ setTab(2) }}>버튼2</Nav.Link>
                    </Nav.Item>
                </Nav>
                <TabContent tab={tab}/>
            </div>
        )
        function TabContent(props){
            // let {stock} = useContext(StockContext); 
            let [fade, setFade] = useState('')
                
            useEffect( ()=> {
                setTimeout( ()=> {setFade('end')},100)
                return()=> {
                    setFade('')
                }
            },

    )         return (             <div className={'start ' + fade}>                 {[<div>1</div>,<div>2</div>,<div>3</div>][props.tab]}             </div>                     )           // if (props.탭 === 0){         //     return <div>내용0</div>         //   }         //   if (props.탭 === 1){         //     return <div>내용1</div>         //   }         //   if (props.탭 === 2){         //     return <div>내용2</div>         //   }     } }
    #49717

    codingapple
    키 마스터
    Store가 아니라 store일수도요
    #49755

    현정
    참가자
    파일명 Store.js이여서 import 할때도 똑같이 썻어요
    user state 변경함수는 잘 동작하는데 왜 cartlist에서 계속 에러가 날까요ㅠㅠ
    #49814

    codingapple
    키 마스터
    export let { addCartItem} = user.actions
    user가 아니라 cartList 인가봅니다
    #49946

    현정
    참가자
    네 맞아여 고치니까 정상적으로 되네요 감사합니다!
5 글 보임 - 1 에서 5 까지 (총 5 중에서)
  • 답변은 로그인 후 가능합니다.

About

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

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

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