우리가 onClick같은 함수에 인자를 추가할때 많은 상황에서 콜백 함수를 주로 사용하는 것을 볼 수 있다. 왜 그럴까?
onClick = {() => clickBtn()}
onClick = {clickBtn}
사실 위와 같은 상황은 별 다른 차이가 없다. 뭐 똑같다고 봐도 상관없다.
단지 아래와 같은 상황에서 콜백 함수를 사용해야 코드가 의도된대로 작동할 것이다.
onClick = {(arg) => clickBtn(arg)}
onClick = {clickBtn(arg)}
onClick에 함수가 괄호를 포함하게 되면 해당 함수를 즉시 실행하게 된다. 인자가 없을 때 onClick = {clickBtn()}을 실행한 것과 같은 상황이 된다.
그러한 이유로 onClick시 실행되려하는 함수에 인자를 넣기위해서는 콜백 함수를 쓸수 밖에 없다.
더 자세한 내용은 아래의 글들을 참조!
onClick 함수에 왜 callback 형태로 작성해야 할까?
왜 어떤건 그냥 함수로 넣고 어떤건 콜백 형태로 넣어주나?
velog.io
React 버튼 onClick 이벤트 핸들러를 화살표 콜백으로 넣어야 하는 이유 (React-Typescript)
버튼 태그를 만들 때 우리는 onClick을 이용하여, 버튼을 눌렀을 때 실행시킬 이벤트 핸들러 함수를 설정한다. 여기에는 두 가지의 방법이 있다. onCick에 들어갈 함수를 호출하는 것과, 참조하는 것
velog.io
Why does callback to the event listener work as intended while using the useEffect hook in react?
I am new to react and have been trying to find an answer to this issue without much success. So, in this case, when I have all the function logic in the event listner's declaration it behaved weird...
stackoverflow.com
'에러 노트' 카테고리의 다른 글
왜 리액트는 map으로 component을 렌더링할때 key가 있어야 하나? (0) | 2024.04.03 |
---|---|
React환경에서 이미지 경로 설정하는법 (0) | 2024.03.27 |
useEffect썼는데 왜 두번 실행되요? (0) | 2024.03.09 |
CSS 전체 선택자에 color: white를 추가하고 구체적인 선택자에 다른 color로 바꿨을 때 (0) | 2024.02.28 |
Intellij maven 프로젝트 생성방법(새로운 ui) (0) | 2022.07.26 |
댓글