내가 하고 싶었던 것:
헤더에서 내가 선택한 부분의 CSS를 바꾸고 싶었다
처음에는 const page = window.location.pathname();을 사용해서 하려고 해보고 안돼서
[page, setPage]로 선언해서도 해보고 useLocation도 써봤는데
클릭 시점에 state를 변경하면 return부분 렌더링 시점과 맞지 않아서 한박자씩 늦게 변경됐다
아무튼 그래서 열심히 방법을 찾던 끝에 NavLink를 사용해서 완성했다. 코드는 대략 다음과 같다.
<NavLink to="/lecture" className={({ isActive }) => (isActive ? "selected" : "")}>
<Content>📚 기초 개념</Content>
</NavLink>
isActive는 NavLink의 고유 속성(boolean)으로 사용할 수 있는 듯 하다. pathname 관련 속성
해당 링크로 이동하는 경우 selected라는 클래스네임이 부여되고, 해당 클래스에 css값을 설정하면 된다
.selected {
font-weight: bold;
color: #506bb1;
}
'TIL > FrontEnd' 카테고리의 다른 글
[Next.js] 응답 완료 시 다른 페이지로 이동하기 (0) | 2023.08.06 |
---|---|
[HTML/CSS] <hr /> 입체 사건 (0) | 2023.05.17 |
[FE] WebStorage 기초 (0) | 2023.04.18 |
[JavaScript] addEventListener 사용 함수 parameter 전달 (0) | 2023.04.16 |
[FE] jQuery 기초 (0) | 2023.04.12 |