Ant.Design Table expandable 내부 이벤트 충돌

Hyunwoo Seo·2023년 4월 5일
0

Ant.D

목록 보기
3/5
post-thumbnail

테이블 내부에 버튼을 클릭 했을 때, 버튼 이벤트로 Modal 이 활성화되도록 구현했다.

그 이전에 테이블 row 를 클릭했을 때 row 가 확장되도록 expandable 기능을 활성화 시켜놨었는데 이 두 기능이 충돌이 일어났다.

버튼을 클릭했을 때는 Modal 만 활성화 됐으면 좋겠는데, row 까지 확장되었다.

버튼 클릭 이벤트에는 적용되어있는 다른 이벤트가 비활성화 되었으면 좋겠다는 생각이 들어 이벤트 관련 코드를 찾아봤다.

e.preventDefault()e.stopPropagation() 두 메서드 모두 이벤트 관련 동작에서 많이 사용되는 코드라서 먼저 차이점을 확인했다.

e.preventDefault() 는 고유 동작을 중단시키고, e.stopPropagation() 는 상위 엘리먼트들로의 이벤트 전파를 중단시킨다.

내가 하고자 했던 것은 태그들의 고유 동작(<a> 태그의 페이지 이동, <form> 태그의 전송 등)을 중단시키는 것이 아닌, 이벤트를 중단시키는 것이기 때문에 e.stopPropagation() 을 사용했다.

여담으로, e.preventDefault() 도 사용해봤지만 원하는 대로 적용되지않았다.

<Button
  onClick={(e) => {
    e.stopPropagation(); 
    ...
  }}
>
  버튼
</Button>

0개의 댓글