해결된 질문
작성
·
390
1
해당 부분 22번째 줄에서 onClick에서 navigate함수를 호출할 때 arrow function이 아니라 그냥 navigate("/home") 함수를 호출하였더니 QS 바꾸기 버튼을 눌렀을 때 페이지가 그냥 뒤로 갔습니다. 왜 그런 것인가요?
답변 1
1
안녕하세요 이정환입니다.
React에서 엘리먼트에 이벤트핸들러를 설정할 때에는 둘중 한가지 방식으로만 진행해야 합니다.
onClick={이벤트핸들러}
또는
onClick={() => 이벤트핸들러()}
다음과 같이는 이벤트핸들러를 설정하지 않도록 해야 합니다.
onClick={이벤트핸들러()}
그 이유는 HTML에서 onclick 이벤트핸들러를 설정할 때와 달리
onClick Prop으로 전달한 함수를 해당 이벤트가 발생했을 때 실행하기 때문인데
위 코드처럼 이벤트핸들러를 설정하면 함수 자체를 설정한게 아니라 함수의 결과값을 설정한 것이기 때문에
의도와 다르게 동작하게 됩니다.