inflearn logo
강의

講義

知識共有

手を動かしながら学ぶReact A to Z [19バージョン反映]

useDebounceカスタムHooksを作成

useDebounce hooks 관련 질문드립니다

428

great80346486

投稿した質問数 16

0

useDebounce함수 내에 있는 useEffect구문을

useEffect(() => {}, []); 이 형태로 바꿔주고 해봤습니다.

웹상에서 searchTerm을 입력할때마다 SearchPage가 리랜더링되고, 그 searchPage(index.js)에서 useDebounce를 사용하고 있고, 따라서 useDebounce에 있는 useEffect도 그때마다 재실행될 줄 알았습니다. 근데 아무리 searchTerm을 변경해줘도 useDebounce에 있는 useEffect는 한번만 실행됐습니다. 왜그런건가요? 제가 useEffect에 대해 잘못이해하고 있는거 같습니다만..

react redux tdd typescript Next.js

回答 3

0

Donkeykong

ㅋㅋ

0

great80346486

해당 훅을 호출하는 컴포넌트가 unmount될떄 clearTimeout이 실행되는게 맞나요?

0

John Ahn

안녕하세요!

searchTerm을 바꾸면 바꿀 때마다

만약 useDebounce.js 에 소스코드가

export const useDebounce = (value, delay) => {
  const [debounceValue, setDebounceValue] = useState(value);

  useEffect(() => {
    console.log('triggered!');
    const handler = setTimeout(() => {
      setDebounceValue(value);
    }, delay);

    return () => {
      clearTimeout(handler);
    };
  }, [value, delay]);

  return debounceValue;
};

 

이런 식으로 되어 있다면 searchTerm을 바꿀 때마다 triggered! 가 log로 출력되게 됩니다.

이렇게 안 나오나요?

강의 소스 코드 압축 풀기 오류

0

68

1

런타임 에러 ㅠㅠ

0

82

1

강의대로 따라갔는데 에러보다 api키로 들어간 넷플릭스? 그런게 렌더링 되지 않습니다 ㅠ

0

99

1

안녕하세요 개발과 상관없는 질문입니다만

0

110

1

리액트 라우터 관련

0

100

1

react-beatiful-dnd에서 문제가 발생합니다.

0

102

1

react19에서는 react-beautiful-dnd가 설치되지 않습니다.

0

802

1

useEffect로 사용을 해도 되나요?

0

197

1

넷플릭스 오리지널 제외하고 슬라이드가 동작을 안합니다.

0

191

1

react 19의 useActionState가 더이상 isPending은 지원하지 않는 듯합니다

0

276

2

리액트 dockderfile 작성 시 COPY 질문

0

144

1

next.js에서부터는 react query 필요없는지

0

319

1

기능

0

192

1

오류가 안보여요

0

192

1

CSS

0

216

1

local storage

0

207

1

list컴포넌트 생성하기

0

221

1

검색어 입력 후 초기화하는 방법 궁금합니다!

0

330

1

Banner.css에 대해서

0

443

1

플러그인이 추천을 안해줍니다

0

319

1

마이너스버튼 테스트

0

278

2

리액트 서버 실행 오류

0

1148

2

오류메세지는 확인했는데 어떻게 고쳐야 할지 모르겠습니다 ㅠ

0

297

1

creactStore질문이요

1

282

2