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

home2 게시판 React 게시판 useEffect 질문이 있습니다.

useEffect 질문이 있습니다.

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

    이종혁
    참가자

    안녕하세요

    강의 듣고 열공중인 수강생입니다..

    하다가 풀리지 않아 질문드립니다 ㅠ

    현재 axios로 데이터를 받아서 그 데이터를 필요 없는것들은 지우고 필요한것들을 추가하는 식으로 가공하여 사용하는데

    useEffect 안에서 useState를 이용해 set 한 후에 console.log를 찍으면 아무 데이터가 들어있지 않습니다.

    let a = data 이런식으로 변수에 지정하고 console.log를 찍으면 데이터가 제대로 나옵니다..

    또 제대로 떳을때는 useState의 상태값이 한단계씩 느리게 나옵니다.

    버튼을 눌러 1씩 올리는것이라고 가정했을때 화면에는 1 2 3 4 5 잘나오지만 console.log에서는 화면에 2가찍히면 콘솔에는 1이 찍혀있는식입니다.

    도저히 해결방법을 못찾겠습니다 도와주세요 ㅠㅠ

    #5840

    codingapple
    키 마스터

    useEffect 안에 useState()가 들어있나요 그러지마시고 useState는 다른곳에 옮기십시오 

    그리고 useEffect 안엔 state변경함수만 넣어 state를 조작하거나 set하거나 하시면 됩니다. 

    #5841

    이종혁
    참가자

    usestate는 가장상단에 정의했고 이펙트안에서는 변경함수만 사용하고있습니다.. ㅠ

    #5842

    codingapple
    키 마스터

    코드를 다 복붙해주십시오 

    #5855

    이종혁
    참가자

    해결했습니다 ㅎㅎ.. 다른 궁금사항이 생겨 또 질문드립니다.

    axios로 2개의 api data를 받아와서 서로 필요한 부분만 꺼내고 가공해서 사용해야 하는데

    만약 리덕스를 사용한다면 어떤식으로 해야하는건가요?

    리덕스로는 api get, post만 하고 데이터를 가공하는 로직은 리덕스에서 받아온 데이터를 state에 담아 가공한뒤 프론트단으로 뿌려줘야 하

    는건가요?

    아니면 리덕스 액션에 데이터 가공하는 과정까지 생성을 하는건가요?

     

    #5860

    codingapple
    키 마스터

    버튼을 누르면 ajax로 서버에 api 요청을 합니다

    요청이 성공해서 데이터를 잘 가져오면 dispatch()를 해서 리덕스로 보냅니다

    그럼 거기 액션을 잘 짜놨으면 데이터가 도착할 때 state를 변경하거나 그런 짓거리를 해주겠죠 

    state가 변경되었으니 우리 ui도 업데이트됩니다 

    끗 

     

    #5867

    이종혁
    참가자

    액션에다가 가공 로직을 다 넣어놔야하는군요

    리덕스로 데이터만 받아서 state에 그걸 넣고 가공을 했었는데..

    감사합니다 ㅎㅎ

    #5902

    codingapple
    키 마스터

    넴 리듀서의 역할은

    원본 state 데이터를 어떻게 이쁘게 뽑아쓸지 정의하는 부분이라보시면 됩니다 

     

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

About

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

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

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