React Hook "useParams" cannot be called inside a callback.

지원·2024년 5월 11일

!error

목록 보기
4/9

React Hook "useParams" cannot be called inside a callback.

카카오 oauth 로그인 구현 중 인가코드를 useParams()로 주소에서 가져오려고 했는데 오류가 발생했다.

해결

/home?code=temp123
인가코드는 경로 뒤에 code라는 변수에 값을 담아 전달하는 query string이다.

/code/1
여기서 1은 경로를 지정한 path variable

useParams()는 path variable을 반환하기 때문에 query string인 인가코드를 받아올 수가 없음
-> query string을 받아오려면 URLSearchParams로 받아와야 함

let params = new URL(document.location.toString()).searchParams;
let code = params.get("code");

참고
https://reactrouter.com/en/main/hooks/use-params
https://developer.mozilla.org/en-US/docs/Web/API/URLSearchParams

0개의 댓글