프로젝트/궁금증 해결

useEffect 를 쓰기 위한 가장 최소한의 조건

Dev dreamer 2022. 11. 11. 09:50

 

mbti 검사 페이지를 만들고 해당 선택지 o 나 x 를 선택하면

 

해당 정보에 카운팅이 되도록 세팅했었는데 이게 useState가 비동기 식으로 동작해서

 

랜더링을 각각 해주는게 아니라 한번에 약 16ms 시간 마다 모아서 랜더링 해준다

 

이를 batch update(일괄 업데이트) 라고 하는데

 

그래서 그에 대한 useState 를 함수내에서도 제대로 그때그때 반영시켜주기 위해서

 

useEffect 나 함수형 업데이트를 해주면 된다는데

 

함수형 업데이트는 일단 잘 적용이 안되었고 그나마 useEffect 가 희망이었는데

 

계속 적용이 안돼서 속상했었다.

 

그런데 ! 이게 어떠한 문법상의 오류가 아니라

 

아래 사진에 보이는 onClickYes1() 에서

 

OnClickYes 로 바꿔줘야 useEffect 가 사용이 가능하다

 

즉 !! useEffect 를 함수내에 넣기 위해선 컴포넌트의 값이 대문자여야 한다.

 

 

useState 값이 일단 동기식으로 그때 그때 적용되는지는 코드를 다시 짜봐야 하겠지만

일단 useEffect 자체가 오류가 안뜬다는거에 굉장히 만족한다. 뿌듯 !