여러개의 메뉴가 있다고 가정해보자. 그 메뉴에서 내가 선택한 메뉴에 특정 스타일을 주고싶다.
사용자는 UI에서 내가 선택한 메뉴가 무엇인지 알아야 하니까! 이때 Link 대신 NavLink
를 사용하면 된다.
NavLink
는 링크가 활성화되었을때 특정 activeStyle
을 사용해 스타일을 입힐 수 있다.
예제코드
<Link activeStyle={activeStyle} to="/locations/gyonggi">
경기
</Link>
Link
대신 스타일을 입히기 위해서 NavLink
를 사용하면 아래와 같다.
import React from 'react';
import { NavLink, Link, Route } from 'react-router-dom';
import Location from './Location';
const Locations = () => {
const activeStyle = {
background: 'red',
color: 'yellow'
};
return (
<div>
<h1> 도시 목록 </h1>
<ul>
<li>
<NavLink activeStyle={activeStyle} to="/locations/seoul">
서울
</NavLink>
</li>
<li>
<NavLink activeStyle={activeStyle} to="/locations/gyonggi">
경기
</NavLink>
</li>
</ul>
<Route
path="/locations"
exact={true}
render={() => <div> 지역을 선택해 주세요. </div>}
/>
<Route path="/locations/:cityname" component={Location} />
</div>
);
};
export default Locations;