Error: NEXT_REDIRECT

eunjee·2024년 12월 15일
0
post-thumbnail

회원탈퇴 기능을 진행하던 중 위의 에러를 만났습니다.

스텍오버플로우를 찾아보니, redirect("/login")"use server"로 표시된 서버 사이드 함수에서 사용하고 있기 때문에 문제가 발생하는 것이라고 합니다.

또한 redirect()클라이언트 사이드에서 실행할 수 없고,

서버 사이드에서만 작동하는 메서드이며, 서버 사이드 액션에서 이를 호출하려고 하면 NEXT_REDIRECT 가 뜨게 되는 것이라고 합니다.

그러므로 클라이언트에서 리디렉션 처리를 해주면 됩니다.

import { useRouter } from "next/navigation"; 를 사용해서 router.push("/"); 해주면 정상 작동합니다.

const DeleteAccountButton = () => {
  const { openModal, closeModal } = useModalStore();
  const updateUser = useUserStore((state) => state.updateUser);
  const router = useRouter();  // useRouter 훅 사용하여 리디렉션 처리

  const handleDelete = async () => {
    try {
      await deleteAccount();
      toast.success("회원탈퇴 되었습니다.");
      updateUser(null);  // 유저 상태를 null로 설정
      closeModal();  // 모달 닫기
      router.push("/"); 
    } catch (error) {
      console.error(error);
      toast.error("회원탈퇴에 실패했습니다.");
    }
  };

참고

https://stackoverflow.com/questions/76191324/next-13-4-error-next-redirect-in-api-routes

0개의 댓글