인프런 커뮤니티 질문&답변
term을 consol.log로 찍었을 때 나오는 게 이해가 안되어서 질문드립니다
작성
·
354
0
const onChangeTerm = useCallback((e) => {
setTerm(e.target.checked);
console.log(term);
setTermError(false);
}, []);
console.log(term);이렇게 term의 consol.log를 찍어서 확인해 봤는데 setState는 비동기이기에 term의 초기값이 false라고 했을때 useState는 비동기이니
하면첫번째 term의 consol.log는
false
truetrue
falsefasle
true
이런식으로 진행되야 할꺼 같은데
실제로 로그 를 찍어보니까 onChangeTerm안에 있는 console.log(term)은 계속 false로 찍힙니다 이유가 무었인가요?
답변 2
0
i1004gy
질문자
그렇다면 더 이해가 안되는데 useCallback의 deps []이거로 설정되어있어서 실행이 안되는데 어쨰서 checkbox를 누를때 term이 true와 false가 번갈아 업데이트가 될 수있나요?
0





[]로 되어있다고 실행이 안 되는 게 아닌데요? 실행은 됩니다. []일 때 실행이 안 되는건 useEffect고요.
내부 term 변수가 업데이트가 안 될 뿐이죠.