🤔 next/routerのpush("/")の問題と修復(原因不明)

5597 ワード

論理の作成中に発生したエラー(?).npm run devを実行中は全く問題ありません.npm run buildnpm run startを実行中に問題が発生します.
実際のコードの作成方法は以下の例とは異なるが,それらの脈絡は基本的に同じであると考えられる.
不思議なことに、"/"を使用すると、ブラウザの現在のタブ自体が停止し、何も実行されません.
エラー・ログがないため、問題の原因を記録するのに時間がかかります.
  • enter.tsx(登録ページ)
  • ルーティング処理フック
  • import { useRouter } from "next/router";
    
    // 대충 특정 로그인 페이지 컴포넌트
    const Enter = () => {
      const router = useRouter();
      
      // 로그인 결괏값
      const [response, setResponse] = useState(null);
      // 로그인 요청 및 결괏값 받기
      useEffect(() => {
        fetch("/api/users/confirm")
          .then(res => res.json())
          .then(data => setResponse(data));
      }, [setResponse])
      
      // 로그인 성공 시 실행
      useEffect(() => {
        if(response?.ok) {
            // 아래 코드 사용 시 브라우저 자체가 멈춤
            router.push("/");
        	// 위 코드 대체로 아래 코드 사용
        	router.push("/#");
        }
      }, [response, router])
      
      return (
        <article>
          // 로그인 페이지를 꾸미는 jsx
        </article>
      )
    }