useLocation과 useEffect로 편하게 해결했다.
import React, { useState, useEffect } from "react";
import { useLocation } from "react-router";
import { Link } from "react-router-dom";
const Header = () => {
const [menuOn, setMenuOn] = useState(false);
const { pathname } = useLocation();
//----pathname이 변화하면 메뉴를 닫을 수 있도록 합니다
useEffect(() => {
setMenuOn(false);
}, [pathname]);
//----
return (
<MenuBtn onClick={() => setMenuOn(!menuOn)}>
{menuOn ? <ClearIcon /> : <MenuIcon />}
</MenuBtn>
<Controls menuOn={menuOn}>
<Control>
<Link to="/">홈</Link>
...
</Control>
</<Controls>
);
};
'💻 코드공방' 카테고리의 다른 글
재사용 가능한 react-hook-form 컴포넌트 만들기 (+ typescript, tailwind) (1) | 2022.12.01 |
---|---|
onChange 시에 바로바로 validation 해주는 input 만들기 (0) | 2021.11.03 |
인풋체크박스를 활용하여 필터링검색 구현하기 (0) | 2021.07.21 |