inflearn logo
강의

Course

Instructor

Learning React while making web games

2-2. Comparing Classes and Hooks

렌더링 될 때마다 함수 새로 그려지는데 한 번 선언하고 계속 쓰면 안되는건가요:?

227

yahoo23447340

41 asked

0

 함수가 새로 그려지는게 useCallback 콜백 매개변수로 특정 값이 바뀔때마다 함수가 새로그려지는걸로 알 고 있습니다. 근데 예전부터 궁금했는데 한 번 그려놓은 함수를 계속 사용하면 되는거아닌가요? 왜 특정 값이 바뀔때마다 useCallback을 해서 새로 그려야 되는건가요? 그냥 [] 빈 배열 값 넣고 시작, 끝일때 실행되게 하면 문법상 에러인가요?

react

Answer 2

2

zerocho

const [name, setName] = useState('zerocho');

const onClick = useCallback(() => {
  console.log(name);
}, []);

이렇게 빈 배열만 넣은 경우에는

setName('nero'); 로 name을 변경할 때

console.log(name)이 여전히 zerocho로 나오게 됩니다.

이것을 nero로 나오게 수정하려면

const onClick = useCallback(() => {
  console.log(name);
}, [name]);

을 넣어야 합니다.

0

yahoo23447340

함수를 새로 그리지 않으면 state값이 업데이트가 되지 않는거군요...  그럼 

const onClick = useCallback(() => {
  console.log(name);
}, []);

은 영원히  'zerocho' 값이군요...

전 onClick 이벤트를 하는 버튼이 함수를 호출하면 값이 바뀔거라고 생각하고 한 번만 선언하면 되지 않나 생각했는데.. 잘못생각했었네요..

npm run dev 실행 시 포트가 안뜨는 문제

0

202

2

timeouts.current를 useEffect 의 input값으로 넣었을때

0

85

2

렌더링 테스트 코드 (Hooks)

0

80

1

Cannot find package 'react-refesh' 이런 에러 뜨시는 분들 보세요.

0

149

1

해당 에러 뜨는 분들 보세요. "Uncaught TypeError: ReactDom.createRoot is not a function"

1

191

1

강사님 레포지토리에서 코드 복사 시 master 브랜치 말고 react18 브랜치꺼 복붙하세요ㅠㅠ

0

95

1

useMemo와 useCallback 사용 시기

0

205

2

onRightClickTd가 작동을 하지 않습니다.

0

226

1

action.type 불러오는 방식

0

222

2

onClickRedo 질문

0

172

1

const Try = require(./Try) 빨간줄

0

248

1

npx webpack 실행시

0

313

1

지뢰찾기 강좌에서 빈칸들 한번에 열기 파트에서 여쭤보고싶은부분이 있어서 글 올립니다.

0

234

1

강좌에서 다루지 않은 기능들은 어떻게 학습하면 좋을까요?

0

311

1

react devtool이 enable 않됩니다.

0

530

2

React 랜더링이 되지 않습니다.

0

409

2

비동기로 동작하는 setState에 대해서

0

331

1

npm run dev 할 때 에러발생

0

478

2

memo, PureComponenet, shouldComponentUpdate 관련 질문

0

206

1

devMiddleware의 필요성

0

352

1

리액트에서 화살표 함수를 사용해야하는 이유

0

931

2

path.join관련질문

0

280

2

2-9. 웹팩 데브 서버와 핫 리로딩 설치과정 시 에러

0

371

1

next.js 에서 이와 비슷한 예제를 돌리고있는데 react랑 달라서 질문 드립니

1

488

4