inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

조병우님의 게시글

조병우 조병우

@whquddn554533

수강평 작성수
3
평균평점
4.0

게시글 1

질문&답변

setImage 를 사용했을 때, state에 바로 적용이 안되는 이유는 무엇인가요?

setState함수가 비동기적으로 작동하고, 동작속도가 느려서 setImage로 image를 set시켜주기 전에 props.refresh~~함수가 동작되버려요. 그래서 그렇게 하신거 같은데 setState로 state변경하고, 바로 그 변경된 state를 쓰고 싶을때는 useEffect를 이용해서 쓰는 방법도 있어요. 그래서 저 같은 경우는 setImages ([... images , response . data . filePath ]); dropHandler에서 이렇게 Image의 state를 변경시켜주고, useEffect (() => { props . refreshFunction ( images ); }, [ images ]) 이렇게 image의 state가 변경되는 걸 catch하게 해서 보냈습니다. 근데 이렇게 하면 image가 set되고 => useEffect에서 감지 => props의 function호출인데 강사님이 해주신 방법대로하면 set호출 => props의 function호출 => set완료 라 더 빠릅니다. 다만, 하다보니 useEffect로 해야하는 경우가 반드시 생겨서 방법은 알고 계시는게 좋을듯해요

좋아요수
1
댓글수
1
조회수
553