Event bubbling

이지·2020년 12월 5일
0

debuggingLog

목록 보기
1/2

이벤트 버블링은 특정 화면 요소에서 이벤트가 발생했을 때 해당 이벤트가 더 상위의 화면 요소들로 전달되어 가는 특성을 의미한다.


  const keepModalWindow = e => {
    e.stopPropagation();
  };

  const handleModal = () => {
    dispatch(openModal(false));
  };

.
.
.

<Wrapper onClick={handleModal}>
      <ModalContainer onClick={keepModalWindow}>
        <SubContainer>
          <Title>다음항목을 확인해주세요</Title>
          <IconWrap onClick={handleModal}>
            <CancelIcon />
          </IconWrap>
        </SubContainer>
      </ModalContainer>
    </Wrapper>

: x 아이콘을 클릭하면 handleModal 함수가 실행되고, openModal 이라는 action 생성함수에 false 값을 전달, reducer 의 값을 바꾼다. 해당 값을 다시 읽어와 true 일때 모달 창을 띄우고, false가되면 사라지게 하는 로직이다.

: 이 때, eventBubbling 이 발생, ovelay 된 부분과 x 아이콘 wrapper 사이의 흰 창(subcontainer)를 누를 때도 모달창이 사라지게 되는데, keepModalWindow는 이를 막아주는 함수인 e.stopPropagation()을 실행하여, event 가 상위 화면 요소로 전달되는 것을 막아준다.

profile
이지피지레몬스퀴지🍋

0개의 댓글