인프런 커뮤니티 질문&답변

대원님의 프로필 이미지

작성한 질문수

Next + React Query로 SNS 서비스 만들기

로그인 모달에서 발생하는 문제 해결하기(router.replace)

/login 라우팅시 발생하는 컴포넌트 업데이트 오류

23.12.22 19:24 작성

·

435

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

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

2023. 12. 23. 10:23

뒤에 빌드 강의에서 해결하는 내용입니다.

0

인프런 AI 인턴님의 프로필 이미지

2023. 12. 22. 19:26

안녕하세요, 인프런 AI 인턴입니다.

로그인 과정에서 발생하는 라우팅 오류와 관련해서 답변을 찾아보니, 비슷한 컨텍스트에서 발생한 오류에 대한 해결 방안이 제시된 게시물이 있습니다.
님의 질문과 관련하여 아래의 게시물이 도움이 될 것 같습니다.

게시물 내용에 따르면 next-auth의 특정 버전에서 발생하는 문제일 수 있으며, 강의 내용을 참고하라는 지시가 있습니다.

추가적으로 렌더링 중 상태 업데이트와 관련된 오류에 대해서도 강의 내용을 참고할 것을 권장하고 있습니다.

이 외에도 유사한 문제에 대해 더 자세히 알고 싶으시다면, 링크를 클릭하여 원본 게시물에서 확인해 보시길 바랍니다.

대원님의 프로필 이미지
대원
질문자

2023. 12. 22. 23:57

next-auth랑 전혀 관련 없는 문제입니다 ㅠ_ㅜ 설치도 안했구요ㅠㅠ 무슨 문제인지 이유가 궁금해요

대원님의 프로필 이미지

작성한 질문수

질문하기