인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

D_One님의 프로필 이미지
D_One

작성한 질문수

React로 NodeBird SNS 만들기

4-15. 댓글 컴포넌트 만들기

질문이요

작성

·

161

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로 뜹니다.

D_One님의 프로필 이미지
D_One

작성한 질문수

질문하기