민프

[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