🤍 전 강의 25% 할인 중 🤍

2024년 상반기를 돌아보고 하반기에도 함께 성장해요!
인프런이 준비한 25% 할인 받으러 가기 >>

  • 카테고리

    질문 & 답변
  • 세부 분야

    프론트엔드

  • 해결 여부

    미해결

link태그를 사용하는데 페이지가 새로고침이 됩니다.

24.05.26 13:08 작성 조회수 95

0

안녕하세요 선생님

강의보면서 플젝을 만들다가 여쭤보고 싶은게 생겼습니다.

📦(afterLogin)
 ┣ 📂(home)
 ┃ ┗ 📂_component
 ┃ ┃ ┣ 📜mbtiCarousel.module.css
 ┃ ┃ ┗ 📜MbtiCarousel.tsx
 ┣ 📂@modal
 ┃ ┣ 📂(.)promise
 ┃ ┃ ┗ 📂form
 ┃ ┃ ┃ ┗ 📜page.tsx
 ┃ ┣ 📂[userId]
 ┃ ┃ ┣ 📂_component
 ┃ ┃ ┃ ┗ 📜UsrCarousel.tsx
 ┃ ┃ ┗ 📜page.tsx
 ┃ ┗ 📜default.tsx
 ┣ 📂like
 ┃ ┗ 📜page.tsx
 ┣ 📂messages
 ┃ ┗ 📜page.tsx
 ┣ 📂profile
 ┃ ┗ 📜page.tsx
 ┣ 📂promise
 ┃ ┣ 📂form
 ┃ ┃ ┗ 📜page.tsx
 ┃ ┣ 📂_component
 ┃ ┃ ┣ 📜PromiseFormButton.tsx
 ┃ ┃ ┣ 📜promiseSection.module.css
 ┃ ┃ ┗ 📜PromiseSection.tsx
 ┃ ┗ 📜page.tsx
 ┣ 📂recommend
 ┃ ┣ 📂_component
 ┃ ┃ ┗ 📜RecommendSection.tsx
 ┃ ┣ 📜page.tsx
 ┃ ┗ 📜recommend.module.css
 ┣ 📂setting
 ┃ ┗ 📜page.tsx
 ┣ 📂[userId]
 ┃ ┗ 📜page.tsx
 ┣ 📂_component
 ┃ ┣ 📜Back.tsx
 ┃ ┣ 📜FriendRecommendSection.tsx
 ┃ ┣ 📜MainTitle.tsx
 ┃ ┣ 📜MbtiRecommendSection.tsx
 ┃ ┣ 📜Modal.tsx
 ┃ ┣ 📜userCard.module.css
 ┃ ┣ 📜UserCard.tsx
 ┃ ┗ 📜UserCardArticle.tsx
 ┣ 📜layout.module.css
 ┣ 📜layout.tsx
 ┗ 📜page.tsx

이런구조에서
(afterLogin) > UserCard 를 클릭하면

@modal > [userId] > page.tsx가 모달창으로 뜨게 됩니다.

새로고침해도 모달창이 뜨게 되어있습니다.

 

이게 로컬에서는 잘 작동하는데

테스트하려고

vercel에 배포해서 확인했더니 url은 바뀌는데 새로고침이 되고 화면은 바뀌지 않더라구요.

구글링해도 만족스런 답변이 없어서 이렇게 글을 남깁니다.

return (
    // <UserCardArticle user={user}>
    <Card className={style.userCard}>
      <Link href={`/${user.id}`} scroll={false} className='w-full h-full absolute top-0 left-0'>
        <img src={user.image[0]} className='rounded-xl h-full block w-full' alt="img" />
        <div className={style.userInfo}>
          <h2 className='text-white font-extrabold text-xl'>{user.mbti.mbti}, 궁합 {user.mbti.score}%</h2>
          <h2 className='text-white font-extrabold text-xl'>{user.nickname}, {user.age}</h2>
          <p className='text-white font-semibold text-base'>{user.distance}km, {user.area}</p>
        </div>
      </Link>
      <div className='absolute bottom-3 px-3 w-full'>
        <Button variant={'default'} className='bg-white hover:bg-slate-50 w-full'>
          <UserPlus color='#000000' />
          <span className='ml-2 text-black font-extrabold'>친구신청</span>
        </Button>
      </div>
    </Card>
    // </UserCardArticle>
  )

기존 선생님처럼 UserCardArticle이란 컴포넌트를 만들어서 router.push도 해봤다가 link태그로 고쳐봤는데도 새로고침이 되어서 어떤부분을 봐야할지 조언 듣고 싶습니다.

감사합니다.

 

 

답변 1

답변을 작성해보세요.

0

새로고침이 되고 화면은 바뀌지 않더라구요.

라고 하셨는데 새로고침은 된다는게 화면이 깜빡인다는 뜻인가요??

일단 /${user.id} 로 이동해서 새로고침 버튼을 누르면

@modal/[userId]/page.tsx가 layout의 {modal}에

[userId]/page.tsx가 {children}에 나오고 있나요?

챠챠_님의 프로필

챠챠_

질문자

2024.05.26

새로고침은 된다는게 화면이 깜빡인다는 뜻인가요??

--> 네 그렇습니다. hard refresh로 깜빡입니다.

 

{modal}, {children}모두 로컬에서는 잘 나오고 있습니다.

로컬에서 데브모드가 아니라 빌드 후 실행까지 해보셨나요?

챠챠_님의 프로필

챠챠_

질문자

2024.05.26

네 방금

npm run build -> npm run start로 테스트로 해보니 잘 작동합니다..ㅠ

인터셉트 라우트하면 params값을 잘 못받는것 같아서 선생님처럼 해봤는데 일단 인터셉트라우트로 교체해서 다시 테스트해보고 다음 작업하면서 좀 더 찾아봐야할것 같습니다.

채널톡 아이콘