-
카테고리
-
세부 분야
프론트엔드
-
해결 여부
해결됨
useEffect []
21.04.22 16:54 작성 조회수 129
0
리액트에서 setState될때 리렌더링이 일어나는데
클래스는 아래 render() 부분이 다시실행되는반면
Hooks는 전체가 다시실행되버리기때문에
useEffect에 [ ] 배열이 비어있을경우 setInterval이 딱한번만 실행되고 리렌더링되버려서 그림이 더안바뀌고.
[ ] 에 useEffect로 값이변경되는 state를 넣으면 그걸 감지해서 setInterval이 다시실행되고 .반복한다.
제가 이해한 useEffect 작동원리가 이런데.. 맞는건가요?
답변을 작성해보세요.
2
조현영
지식공유자2021.04.22
빈 배열인 경우에도 setInterval은 실행되므로 changeHand는 계속 실행됩니다. 다만 그림이 안 바뀌는 이유는 changeHand 내부의 imgCoord가 안 바뀌기 때문입니다.
그래서 imgCoord를 바꾸기 위해서 [imgCoord]를 넣은 것입니다.
답변 1