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

home2 게시판 React 게시판 분류함수와 useEffect활용 질문

분류함수와 useEffect활용 질문

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

    송민철
    참가자

    Stat컴포넌트의 stat에서 카테고리 별로

    운동은 운동state에, 공부는 공부state에, 기타는 기타state에 분류해서 넣기위해 코드를 구성했습니다.

    Division함수를 통해 stat을 돌아가며 각각의 state에 넣어주었습니다.

    console.log로 운동을 확인해 보니 두 개의 객체가 나와야 하는데 하나의 객체만 나오고 있습니다..ㅠㅠ 

    어디가 잘못된 것 인가요??

     

    function Stat(props){
        let [stat,stat변경] = useState([
          {
            date: "2021-12-22",
            category: "운동",
            most_reps: "10",
            most_time: "2",
            total_reps: "10",
            total_time: "3",
            number_of_participants: "참여자 수",
            number_of_completes: "완료자 수",
          },
          {
            date: "2021-12-22",
            category: "공부",
            most_reps: "10",
            most_time: "2",
            total_reps: "15",
            total_time: "20",
            number_of_participants: "참여자 수",
            number_of_completes: "완료자 수",
          },
          {
            date: "2021-12-22",
            category: "기타",
            most_reps: "10",
            most_time: "2",
            total_reps: "5",
            total_time: "18",
            number_of_participants: "참여자 수",
            number_of_completes: "완료자 수",
          },
          {
            date: "2021-12-30",
            category: "운동",
            most_reps: "10",
            most_time: "2",
            total_reps: "8",
            total_time: "25",
            number_of_participants: "참여자 수",
            number_of_completes: "완료자 수",
          },
        ]);
       
        let[공부,공부변경] = useState([]);
        let[운동,운동변경] = useState([]);
        let[악기,악기변경] = useState([]);
        let[기타,기타변경] = useState([]);
     
        let i=0;

        function Division(){
          for(i;i<stat.length;i++){
            switch(stat[i].category){
              case '공부' : 공부변경([...공부, stat[i]]);
              break;
              case '운동' : 운동변경([...운동, stat[i]]);
              break;
              case '악기' : 악기변경([...악기, stat[i]]);
              break;
              case '기타' : 기타변경([...기타, stat[i]]);
              break;
            }
          }
          return;
        }

        useEffect(()=>{
            Division()
          }
        ,[stat]);

     

    ... }

    #23003

    codingapple
    키 마스터

    state변경함수가 늦게 처리되어서 그런게 아닐까요 

    반복문에서 바로바로 state변경함수를 부르지 말고 

    [] 자료 하나 만들어서 거기 결과를 넣어뒀다가

    반복문 끝나고 한 번에 state변경함수를 써봅시다

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 호 / 개인정보관리자 : 박종흠