작성
·
548
1
Warning: Cannot update a component (`Router`) while rendering a different component (`RedirectLoginPage`). To locate the bad setState() call inside `RedirectLoginPage`, follow the stack trace as described in https://reactjs.org/link/setstate-in-render
at RedirectLoginPage (webpack-internal:///(app-pages-browser)/./src/app/(beforeLogin)/login/page.tsx:15:78)
at StaticGenerationSearchParamsBailoutProvider (webpack-internal:///(app-pages-browser)/./node_modules/next/dist/client/components/static-generation-searchparams-bailout-provider.js:15:11)
at InnerLayoutRouter (webpack-internal:///(app-pages-browser)/./node_modules/next/dist/client/components/layout-router.js:240:11)
로그인 버튼 클릭시 '/login' 이동하면 이런 Warning 이 발생하는데 빌드시에도
Error occurred prerendering page "/login". Read more: https://nextjs.org/docs/messages/prerender-error
ReferenceError: location is not defined
위 같은 에러가 발생합니다.
location을 사용하는 부분도 없고, useRouter도 'next/navigation' 에 있는 것을 사용중입니다.
해결법으로는 useEffect로 감싸주는 법이 있어 useEffect((router.replace(path)) => []) 이런방식으로 해봤는데 오류는 해결되네요.
하지만 오류 내용대로 해석해보면 렌더링 도중 set을 통한 상태변화를 하지 않는데 오류가 나는 이유는 뭔가요?
return 으로 Main 컴포넌트를 그려주어야하는데 replace시 LoginModal의 컴포넌트를 그려주어야해서 렌더링해야할 컴포넌트가 겹쳐서 발생하는 문제인가요?
답변 2
0
0
안녕하세요, 인프런 AI 인턴입니다.
로그인 과정에서 발생하는 라우팅 오류와 관련해서 답변을 찾아보니, 비슷한 컨텍스트에서 발생한 오류에 대한 해결 방안이 제시된 게시물이 있습니다.
님의 질문과 관련하여 아래의 게시물이 도움이 될 것 같습니다.
게시물 내용에 따르면 next-auth
의 특정 버전에서 발생하는 문제일 수 있으며, 강의 내용을 참고하라는 지시가 있습니다.
추가적으로 렌더링 중 상태 업데이트와 관련된 오류에 대해서도 강의 내용을 참고할 것을 권장하고 있습니다.
이 외에도 유사한 문제에 대해 더 자세히 알고 싶으시다면, 링크를 클릭하여 원본 게시물에서 확인해 보시길 바랍니다.
next-auth랑 전혀 관련 없는 문제입니다 ㅠ_ㅜ 설치도 안했구요ㅠㅠ 무슨 문제인지 이유가 궁금해요