inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

한 입 크기로 잘라먹는 Next.js

5.2) 풀 라우트 캐시 2

searchParams 및 params 의 사용법이 변경된 것 같습니다.

해결된 질문

826

kimgni.dev

작성한 질문수 13

0

기존처럼 사용하면 빌드시 타입 오류가 나와서 따로 type을 Promise 로 만들어 사용해줘야 하는 듯합니다.

nextjs 링크도 첨부해두었습니다.

https://nextjs.org/docs/app/building-your-application/upgrading/version-15#params--searchparams

참고로 search/page.tsx 에서 searchParams 를 다음과 같이 타입 적용해주었더니 정상 빌드되었습니다.


type SearchParams = Promise<{ q?: string }>;

react typescript next.js

답변 2

0

이정환 Winterlood

안녕하세요 이정환입니다.

좋은 제보 감사합니다.

 

혹시 이전에 작성해주신 아래 질문과 다른 내용일까요?

동일한 내용으로 보이는데 이전 질문에 달린 답변을 혹시 확인하시지 못하셨을 까봐 질문드립니다.

확인 부탁드립니다 😃

https://www.inflearn.com/community/questions/1412572/searchparams-params-%EB%A5%BC-%EC%82%AC%EC%9A%A9%ED%95%98%EB%8A%94-%EB%B6%80%EB%B6%84%EC%9D%B4-15%EC%97%90%EC%84%9C-%EB%B3%80%EA%B2%BD%EB%90%98%EC%97%88%EC%8A%B5%EB%8B%88%EB%8B%A4

0

인프런 AI 인턴

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

Next.js 15 버전에서 searchParams 및 params 사용 방법이 변경되었다는 내용을 다루셨네요. Next.js의 업그레이드는 종종 API 변경을 포함하며, 이러한 변화는 타입스크립트와 같은 정적 타입 언어를 사용할 때 특히 민감하게 반영됩니다.

주요 변경사항 및 처리방법

Next.js 15에서는 params와 searchParams는 비동기적으로 데이터를 가져올 수 있도록 설계되었습니다. 따라서, Promise 형태로 반환값을 감싸야 하게 되었습니다.

기존 방식에서 변경된 방식

  • 기존 방식: 비동기 처리가 없는 일반적인 객체를 직접 사용.
  • 변경된 방식: 비동기 처리에 따라 Promise 객체로 감싸 변경된 값을 사용합니다.

코드 업데이트

다음과 같이 searchParams와 params를 비동기적 처리로 업데이트할 수 있습니다:

// search/page.tsx
export default async function Page({ searchParams }: { searchParams: SearchParams }) {
  const { q } = await searchParams;

  return <div>Search Query: {q}</div>;
}

이와 같이 적용함으로써 오류 없이 빌드를 진행할 수 있습니다.

유사 질문 및 참고 자료

다음 게시글들도 참고하여 더욱 깊이 있는 이해를 도울 수 있습니다:

Next.js 공식 문서도 유용하게 활용할 수 있으며, 버전 차이를 고려한 코드 수정을 진행할 때 많은 도움이 될 겁니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

안녕하세요, 강의 수강 중인 학생입니다.

0

19

2

강의 잘 들었습니다.

0

37

1

generateStaticParams() 응용 질문 드립니다.

0

77

2

강의 업데이트 관련

0

87

1

에러핸들링- rootlayout에 관하여

0

78

2

버셀로 서버 배포 후 접속 시 500 에러 발생

0

147

2

컴포넌트와 레이아웃

0

94

2

@/styles/globals.css'

0

122

2

풀라우트캐시 동작 원리에서 데이터 캐시 관련 질문

0

105

2

next.js 프로젝트

0

103

1

Next.js + Tanstack Query BFF 구조 질문

1

135

2

Next.js 사전렌더링 이해하기 부분

0

121

2

모달 관련 질문

0

139

3

렌더링 관련 질문

0

140

2

중복으로 하나의 api를 요청할 때 캐싱 옵션 통일화

0

136

2

라우트 세그먼트 옵션 강좌 노트에 사소한 제보 남깁니다.

0

126

2

SSR시 context에 params말고 query를 사용하면 안되나요?

0

146

2

npx prisma db push 시 에러가 뜹니다.

0

181

3

vercel 배포를 실패하였습니다.

0

203

3

Image 컴포넌트 사용시 브라우저 콘솔에 경고는 왜 뜨는걸까요?

0

138

2

getServerSideProps 함수와 SSR의 관계

0

183

6

없는 페이지인데 풀라우트캐시로 저장이 되는 이유가 궁금합니다

0

124

2

실제 프로젝트에서 SSR 사용에 관해서 질문드립니다.

0

187

2

일반적인 nextjs project architecture에 대하여..

0

152

2