ㅇㅇㅈ Blog

프론트엔드 수행중

0%

2022-05-24-TIL

React-BootStrap Nav Link

BootStrap Nav 링크에 React-Router-Dom NavLink 적용하기

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
import React from 'react';
import { Navbar, Container } from 'react-bootstrap';

const NavBarElement = () => {
return (
<Navbar collapseOnSelect expand='lg' bg='dark' variant='dark'>
<Container>
<Navbar.Brand href='/'>React-Bootstrap</Navbar.Brand>
</Container>
</Navbar>
);
};

export default NavBarElement;

이런식으로 부트스랩에서 제공하는 컴포넌트로 nav를 작성하면 href 가 기본적으로 되어 있는데
이걸 to='/' 이런식으로 바꾸면 제대로 작동하지가 않는다
그렇다고 href에 주소를 그냥 작성하면 새로고침이 일어나게 된다

방법 1

그냥 react-router-dom의 navlink를 사용하고 클래스로 bootstrap을 적용하는 것
그럼 페이지를 이동해도 새로고침이 일어나지 않는다

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
import { NavLink } from 'react-router-dom';
import { Navbar, Container } from 'react-bootstrap';

const NavBarElement = () => {
return (
<Navbar collapseOnSelect expand='lg' bg='dark' variant='dark'>
<Container>
<NavLink className='navbar-brand' to='/'>
React-Bootstrap
</NavLink>
</Container>
</Navbar>
);
};

export default NavBarElement;

방법 2

as 를 통해 NavLink를 상속 받는것

1
2
3
4
5
6
7
8
9
10
11
12
13
14
import { NavLink } from 'react-router-dom';
import { Navbar, Container } from 'react-bootstrap';

const NavBarElement = () => {
return (
<Navbar collapseOnSelect expand='lg' bg='dark' variant='dark'>
<Container>
<Navbar.Brand as={NavLink} to='/'>
React-Bootstrap
</Navbar.Brand>
</Container>
</Navbar>
);
};