본문 바로가기

Error

[Error] Error: NEXT_REDIRECT

728x90

Error: NEXT_REDIRECT

 

로그인에 성공하면 메인페이지로 이동하는 코드를 구현했는데 위와 같은 에러가 발생했다.

redirect에서 난 오류인 것 같았다. 

 

const handleLogin = async () => {
...
  else if (result.status === 'SUCCESS') {
    alert('로그인에 성공했습니다.');
    redirect('/dashboard');
  }
}

 

검색 결과, next/navigation의 redirect를 클라이언트 컴포넌트에서 사용해서 난 에러였다.

redirect는 서버 컴포넌트에서만 사용이 가능하다,,

 

클라이언트 컴포넌트에서 페이지를 이동하고 싶다면, router를 사용해야 한다. 

 

 

import { useRouter } from 'next/navigation'
const router = useRouter();

const handleLogin = async () => {
...
  else if (result.status === 'SUCCESS') {
    alert('로그인에 성공했습니다.');
    router.push('/dashboard');
  }
}

 

이렇게 router로 코드를 수정하니까 에러 없이 잘 실행됐다. 

 

 

------------

next.js 업데이트하고나서 서버컴포넌트, 클라이언트컴포넌트 분리하는 게 너무 헷갈리고 어렵다ㅠㅠ

이제 사이드 프로젝트하면서 연습하고 있는데 앞으로 더 부지런히 해야할듯,,

 

회사에서 맨날 똑같은 것만 하다가 처음부터 세팅하고 시작하려니까 색다르다ㅋㅋㅋㅋ

진작 프로젝트 좀 따로 만들걸!

728x90