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

squirrel PARK님의 프로필 이미지

작성한 질문수

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

레이아웃 클론하기

챕터1까지 듣고 질문입니다. 새로고침해도 @modal이 유지되게 할 순 없을까요?

해결된 질문

24.07.07 19:12 작성

·

126

·

수정됨

0

안녕하세요! 강의 잘듣고있습니다.

login 폴더가 불필요한 루트 인 것 같아서 바로 인터셉터 라우터를 이용해 @modal로 연결했습니다.

<Link href="/i/flow/login" className={styles.login}>로그인</Link>

또 추가로 새로고침 해도 Modal을 유지하고 싶어서

i/flow/login폴더에서 아래와 같이 마운트시에 인터셉터 하도록 유도하였습니다.

"use client";

import { useRouter } from "next/navigation";
import { useEffect } from "react";

export default function Login() {
  const router = useRouter();
  useEffect(() => {
    router.replace("/i/flow/login");
  }, [router]);

  return null;
}

기존 유입방식으로 SSR Page에서 i/flow/login으로 이동 시, 인터셉터 라우팅하여 병렬 라우팅 하던것과 달리,

바로유입 -> i/flow/login -> (replace) -> (.)i/flow/login/page.tsx 순으로 @modal이 출력될줄 알았는데

모달이 출력되질 않네요..

이유가 i/flow/login으로 바로 접속했기에 상위 폴더 영역에서 {modal}을 선언한 layout을 찾지 못하기 때문에 아무것도 뜨지 않는건가요?

제가 이해한 것이 맞을지 검색해도 잘 안나와서 질문드립니다!

답변 1

0

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

2024. 07. 07. 20:58

잘 이해가 안 됩니다.

i/flow/login에서 왜 router.replace('i/flow/login')을 하시나요? 이미 i/flow/login에 위치해 계신거 아닌가요?

squirrel PARK님의 프로필 이미지
squirrel PARK
질문자

2024. 07. 08. 09:02

i/flow/login에서 새로고침하게 해도 인터셉터해서 모달을 띄우기 위해서 넣어두었는데

방식이 잘못되었을까요..?

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

2024. 07. 08. 11:03

자기 페이지로 replace하는 거를 페이지 변경으로 인식하는지가 좀 의문이네요. 한 번도 그렇게 해본적이 없어서요. 일단 i/flow/login도 layout을 찾지 못할 이유는 없습니다. 인터셉팅라우트 대신 그냥 패러렐 라우트도 넣어보세요.