• 카테고리

    질문 & 답변
  • 세부 분야

    프론트엔드

  • 해결 여부

    해결됨

onClick

23.05.29 17:03 작성 조회수 326

1

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

답변 1

답변을 작성해보세요.

1

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

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

onClick={이벤트핸들러}

또는

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

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

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

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

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

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

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