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

home2 게시판 React 게시판 함수형 컴포넌트 내에서 무한루프 문제

함수형 컴포넌트 내에서 무한루프 문제

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

    김연준
    참가자
    function Page4(props){
    let {id} = useParams();
    let [ball, setball] = useState(['/몬스터볼.webp', '/열린몬스터볼.png'])
     
     console.log(props.id)
    props.setid(id)
     
     
    setTimeout( ()=>{setball(['/열린몬스터볼.png', '/몬스터볼.webp'])}, 500);
    
    
    이와 같은 코드에서 무한 루프에 빠져서
    function Page4(props){
    let {id} = useParams();
    let [ball, setball] = useState(['/몬스터볼.webp', '/열린몬스터볼.png'])
     
     
    useEffect(function(){
    console.log(props.id)
    props.setid(id)
     
     
    setTimeout( ()=>{setball(['/열린몬스터볼.png', '/몬스터볼.webp'])}, 500);
     },[])
    
    
    useEffect 를 사용하고 빈배열을 사용해서 무한루프에서 나오긴 했는데
    
    왜 기존코드에서 무한루프가 발생했는지 이유도 모르겠고
    기존에는 useEffect 없이도 무한루프가 돌지 않았는데 왜 갑자기 무한루프가 도는지 모르겠습니다.
    (두개의 state를 변경했기 때문에 한 state가  리렌더링 될때 다른 setstate가 실행되서 그런가? 라고 어렴풋이 생각했는데 잘 모르겠습니다. ㅠㅠ)
    
    
    
    
    
    		
    	
    #39192

    codingapple
    키 마스터
    재렌더링되면 컴포넌트 안의 코드 다시 읽습니다
    setTimeout 실행되면 state 변경되고
    그럼 재렌더링되고 
    그럼 setTimeout 또 실행되고 
    그런 식인듯요
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 호 / 개인정보관리자 : 박종흠