민프
[Next.js Error]Error: No router instance found.You should only use "next/router" on the client side of your app. 본문
[Next.js Error]
[Next.js Error]Error: No router instance found.You should only use "next/router" on the client side of your app.
민프야 2024. 8. 13. 17:35이 오류는 next/router를 서버에서 사용하는 경우 발생합니다.
next/router는 클라이언트 사이드에서만 동작하도록 설계되어 있기 때문에, 이 문제를 해결하기 위해 다음과 같이 코드를 수정해야 합니다.
useEffect를 사용하여 router를 클라이언트 사이드에서만 사용할 수 있도록 해야 합니다.
또는, next/navigation의 useRouter를 사용하는 것이 더 좋습니다.
// 이전 코드---------------------------------------
import router from 'next/router';
.
.
.
export default function ConsentDialog({ onClose }: { onClose: () => void }) {
.
.
.
const handleSubmit = () => {
router.push('/');
};
}
// 수정 된 코드---------------------------------------
import { useRouter } from 'next/navigation'; // next/navigation에서 useRouter 사용
.
.
.
export default function ConsentDialog({ onClose }: { onClose: () => void }) {
const router = useRouter(); // 클라이언트 사이드에서만 동작
.
.
.
const handleSubmit = () => {
router.push('/');
};
}
Comments