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

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

seokki kwon님의 프로필 이미지
seokki kwon

작성한 질문수

배달앱 클론코딩 [with React Native]

주문 수락, 거절 버튼 만들기

강사님 질문있습니다

작성

·

133

0

강의 잘보고 있습니다 강사님

리액트 네이티브 보다는 리액트 질문인데

 

 const [detail, setDetail] = useState<boolean>(false); 
  const toggleDetail = useCallback(() => {
    setDetail(!detail); 
  }, [detail]);

해당 부분에서 의존배열을 빈배열로 하면 토글이 안되는이유가

useCallback 에 빈배열을 넣었을때 toggleDetail 함수가 기억하는 detail은 false 라서 계속 눌러도 토글 기능을 하지못하는 것이고 의존배열에 detail 에 넣어줘야 정상작동을 하는데

제가 생각한게 맞는건가요?

 

답변 1

0

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

네 맞습니다. toggle이 true랑 false로 바뀌더라도 []안에 들어있지않으면 useCallback에서는 바뀐 걸 인식을 못 합니다.

seokki kwon님의 프로필 이미지
seokki kwon
질문자

늦은시간에... 감사합니다!!

 

바뀐 state는 인지를 못하지만 콘솔은 여전히 찍혀서

이부분을 여태 조금 잘못알고 있던것 같습니다

죄송하지만 하나더 여쭤보자면

바뀐값은 감지를 못하지만 호출은 됨 useCallback에 빈배열일 경우 호출을 안한다기 보다는 참조값을 그대로 가지고 있다 라고 이해를 하면될까요?

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

네 맞습니다. 첫 값이 유지됩니다.

seokki kwon님의 프로필 이미지
seokki kwon
질문자

감사합니다😁😁😁

seokki kwon님의 프로필 이미지
seokki kwon

작성한 질문수

질문하기