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

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

장바구니 기능 만들기

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

    이도아
    참가자

    <코드>

     

    function reducer(state = 기본state, 액션){

      if(액션.type==='항목추가'){

        let found = state.findIndex((a)=>{return a === 액션.데이터.id });

        if(found >= 0){

          let copy = [...state];
          copy[found].quan++;

        }
        else {
          let copy = [...state];
          copy.push(액션.데이터);

          return copy
        }
       

      } else if {(액션.type === '수량증가'){
        
        let copy = [...state];
        copy[액션.데이터].quan++;

        return copy
      
      }

      } else if(액션.type === '수량감소'){
        
        let copy2 = [...state];

        if (copy2[액션.데이터].quan > 0){
        copy2[액션.데이터].quan--;

        return copy2

      }

      }else{

        return state
      }

    }

     

     

    <오류내용>

     

    Failed to compile

     

     

    ./src/index.js
    SyntaxError: C:\Users\나\Desktop\코딩애플\리액트수업\shop\src\index.js: Unexpected token, expected "(" (57:12)

    55 |
    56 |
    > 57 | } else if {(액션.type === '수량증가'){
    | ^
    58 |
    59 | let copy = [...state];
    60 | copy[액션.데이터].quan++;

     

     

     

     

    어떤게 문제인걸까요?... 자꾸 오류가 나네요

    뭔가 안닫힌것같은데...

    #9802

    codingapple
    키 마스터

     } else if {(액션.type === ‘수량증가’){  이 부분이

     } else if (액션.type === ‘수량증가’){ 이거가 아닐까요

    #9826

    이도아
    참가자

    import React from 'react';
    import ReactDOM from 'react-dom';
    import './index.css';
    import App from './App';
    import reportWebVitals from './reportWebVitals';
    import {BrowserRouter} from 'react-router-dom';

    import {Provider} from 'react-redux';
    import {combineReducers, createStore} from 'redux';

    let alert초기값 = true;

    function reducer2(state = alert초기값, 액션){
      
      if (액션.type === 'false만들기'){
        
        state = false;

        return state

      } else {
        return state
      }

    }

    let 기본state =  [{id : 0, name : '멋진신발', quan: 1},
    {id : 1, name : '예쁜신발', quan: 2}

    ];

    function reducer(state = 기본state, 액션){

      if(액션.type==='항목추가'){

        let found = state.findIndex((a)=>{return a === 액션.데이터.id });

        if(found >= 0){

          let copy = [...state];
          copy[found].quan++;

        } else {
          let copy = [...state];
          copy.push(액션.데이터);

          return copy
        } 
        
      } else if (액션.type === '수량증가'){
        
        let copy = [...state];
        copy[액션.데이터].quan++;

        return copy
      
      } else if(액션.type === '수량감소'){
        
        let copy = [...state];

        if (copy[액션.데이터].quan > 0){
        copy[액션.데이터].quan--;

        return copy

      } else{

        return state
      }

    }

    let store = createStore(combineReducers({reducer,reducer2}));

    ReactDOM.render(
      <React.StrictMode>
        <BrowserRouter>
        <Provider store={store}>
        <App />
        </Provider>
        </BrowserRouter>
      </React.StrictMode>,
      document.getElementById('root')
    );

    // If you want to start measuring performance in your app, pass a function
    // to log results (for example: reportWebVitals(console.log))
    // or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals
    reportWebVitals();

     

     

    ㅜㅜ 도저히 모르겠어요... 그부분  { 이거 지워도 계속 오류가 뜨네요....

    https://blog.naver.com/jmje1992/222375146721    <- 이건 오류 내용입니다!! 

    오류가 너무 길어서 무섭습니다..

    #9829

    codingapple
    키 마스터

    역시 미국말을 잘해야 개발도 잘합니다

    리듀서만들 때 return을 안쓴 부분이 있다는 소리같아서 그것을 잘 찾아보도록합시다

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

About

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

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

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