포트폴리오 헤더 만들면서 생긴 문제,,

Link 안에 span태그로 다크모드를 만들었더니 다크모드 클릭 할 때마다 홈으로 가는 현상 발생

이벤트 버블링 막는 메소드가 e.stopPropagation() 만 있는 줄 알고 왜 안되지 ? 고민만 하다가 검색해보니

form submit 버튼 클릭시 막아주는 메소드(e.preventDefault)를 써도 이벤트 버블링을 막을 수 있다는 걸 발견 

 

e.stopPropagation 안되면 e.preventDefault 써보기

차이가 뭔지 찾아봐야겠다

<header>
    <div>
        <Link to={'/'}><h1 className="logo">Dust
            <span className="dark-mode" onClick={(e) => {
                // e.stopPropagation();
                e.preventDefault();
                const click = e.currentTarget;
                if(click === e.currentTarget){
                    root.classList.toggle('dark');
                    setDark(!dark);
                }
            }}>{dark ? '🌜모드' : '🌞모드'}</span></h1>
        </Link>
        <ul>
            <li><Link to={'/todolist'}>TodoList</Link></li>
            <li><Link to={'/shop'}>shop</Link></li>
            <li><Link to={'/board'}>Board</Link></li>
            <li><a href="#">Github</a></li>
        </ul>
        <div id="mobile-menu" onClick={() => {
            dispatch(modalOpen(true));
        }}>Menu</div>   
    </div>
</header>

 

'개발 > React' 카테고리의 다른 글

[React] gh-pages route 오류  (0) 2022.11.07
[React] Node + Express 서버와 React 연동  (0) 2022.10.22
[React] input 상태 관리  (0) 2022.05.16
[React] props(Propeties)  (0) 2022.05.12

+ Recent posts