FrontEnd/Next.js
[Next.js] router query(props) 값이 비어있는 오류
기은P
2022. 7. 15. 10:47
반응형
1. 개요
Next.js에서 router를 사용해서 페이지 이동을 할때, query에 keyword를 담아서 페이지 이동을 시키려고 했습니다.
search라는 페이지에 해당하는 tsx에서 props로 저 쿼리가 읽혀야 하는데 props.data에 값이 비어있었습니다...
2. 해결 방법
const router = useRouter();
const queries = router.query; // 전달받은 쿼리 내용
useEffect(() => {
if (!router.isReady) return;
console.log(queries)
}, () => { })
}, [router.isReady])
위와 같이 전달 받은 tsx에서 useRouter() 객체를 가지고 초기화를 해서 사용해야 합니다.
이유는 정적파일 최적화(Automatic Static Optimaizaion)에 의해서 최적화된 페이지의 루트 매개 변수가 제공되지 않아서 query가 빈 객체가 된다고 합니다...
저 router의 isReady를 useEffect에서 감시하도록 두고 그 내부에서 쿼리로 받은 데이터를 사용하면 됩니다!
참고 사이트
https://im-designloper.tistory.com/98
반응형