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

김학준님의 프로필 이미지
김학준

작성한 질문수

[2024] 한입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지

12.4) 페이지 라우팅 3. 페이지 이동

onClick

해결된 질문

작성

·

390

1

해당 부분 22번째 줄에서 onClick에서 navigate함수를 호출할 때 arrow function이 아니라 그냥 navigate("/home") 함수를 호출하였더니 QS 바꾸기 버튼을 눌렀을 때 페이지가 그냥 뒤로 갔습니다. 왜 그런 것인가요?

답변 1

1

이정환 Winterlood님의 프로필 이미지
이정환 Winterlood
지식공유자

안녕하세요 이정환입니다.

React에서 엘리먼트에 이벤트핸들러를 설정할 때에는 둘중 한가지 방식으로만 진행해야 합니다.

onClick={이벤트핸들러}

또는

onClick={() => 이벤트핸들러()}

다음과 같이는 이벤트핸들러를 설정하지 않도록 해야 합니다.

onClick={이벤트핸들러()}

그 이유는 HTML에서 onclick 이벤트핸들러를 설정할 때와 달리

onClick Prop으로 전달한 함수를 해당 이벤트가 발생했을 때 실행하기 때문인데

위 코드처럼 이벤트핸들러를 설정하면 함수 자체를 설정한게 아니라 함수의 결과값을 설정한 것이기 때문에

의도와 다르게 동작하게 됩니다.

김학준님의 프로필 이미지
김학준

작성한 질문수

질문하기