• 카테고리

    질문 & 답변
  • 세부 분야

    풀스택

  • 해결 여부

    미해결

질문이요

19.12.03 16:36 작성 조회수 118

0

//댓글창 열고 닫기 용.
const [commentFormOpened,setCommentFormOpened] = useState(false);
const onToggleComment = useCallback(() => {
console.log("BRFORE",commentFormOpened)
setCommentFormOpened(prev => !prev);
console.log("AFTER",commentFormOpened)
if(!commentFormOpened){
dispatch({
type: LOAD_COMMENTS_REQUEST,
data: post.id,
})
}
}, []);

댓글창 열고 닫기용이요, 

setCommentFormOpened(prev => !prev); 가 true 와 false를 왔다갔다 해야하잖아요./

실질적으로, 콘솔에, 변환하기전 Bfore 과 변환후를 After를 

찍어보면은,  값은 변하지는 않고 다 false 만 나오네요?? 

그런데 이상하게, 댓글창은 열리고 닫히네요... ??

어떻게 된건지 이해가 안가네요 ㅠㅠ?

답변 1

답변을 작성해보세요.

0

setCommentFormOpened(prev => !prev);는 비동기입니다. 전후로 console.log찍어도 setCommentFormOpened(prev => !prev);보다 먼저 실행돼서 둘 다 false로 뜹니다.