반응형
2021년 11월에 react-router-dom이 그간의 v5에서 v6로 업그레이드하였습니다
이에 맞춰서 코드를 변환시키다보니 react에서 현재 url을 가져오는 부분이 바뀌어서 조금 애를 먹었습니다.
기존에는 아래처럼 useRouteMatch()를 사용하고 있었어요
import { Link, useRouteMatch } from 'react-router-dom'
import { useHistory } from 'react-router'
...
const { path, url } = useRouteMatch()
const key = useRecoilValue(keyState)
const history = useHistory()
const clickHandler = () => {
history.push(`${url}/${key}`)
setPageChangeReady(false)
}
이제 v6에서는 react-router-dom에서 useLocation()을 가져와서 현재위치를 받아오고, useNavigate()를 활용해서 페이지간 이동을 할 수 있습니다
import { useNavigate, useLocation } from 'react-router-dom'
...
const key = useRecoilValue(keyState)
const navigate = useNavigate()
const location = useLocation()
const clickHandler = () => {
navigate(`${location.pathname}/${key}`)
setPageChangeReady(false)
}
반응형
'프론트엔드 웹 > React' 카테고리의 다른 글
classnames 패키지 사용법 (0) | 2022.01.25 |
---|---|
eslint 설정하기 (0) | 2022.01.12 |
[에러해결] You are running `create-react-app` 4.0.3, which is behind the latest release (5.0.0) (3) | 2022.01.05 |
useState의 초기값을 내가 받아온 props값으로 설정하기 (0) | 2021.11.12 |
타이밍 애니메이션 Typewriter-effect 예제 (0) | 2021.10.23 |