Next.js Complete Mastery (v15): Building a Notion-Based Developer Blog (with Cursor AI)
Metadata API
params 에 Promise 객체 타입이 지정되어야 하는 이유? 최신?
76
13 asked
안녕하세요! 강의 5:15초 부터의 설명에 조금만 더 자세히 설명해주시면 감사할것 같아서요!
"이러한 파람즈도 프라미스로 가져와야겠죠 우리가 최신을 사용하고 있기 때문에 다시 generateMetadata 함수를"라고 스크립트(영상자막)는 나와 있는데, 이유를 설명하는 파트가 잘 안 와닿아서 혹시 설명해주실 수 있나요?
직관적으로 생각하면 export generateStaticParams에서 slug 를 params으로 가져오는데 시간이 걸리니까, 기다려야 하니까 await 으로 params를 기다리는건 알겠는데, 'params'가 왜, 어떻게 해서 Promise 타입인지 궁금합니다.
너무 두서없었네요. 정리하자면
1.왜 params 가 Promise 객체 타입인지, 코드 어디에서, 어떻게 해서 Promise 객체 타입이 되었는지 궁금합니다.
2. 혹시 params 가 Promise 객체 타입인 이유는, 그저, [slug]폴더로 동적페이지로 정의되었으니, 컴포넌트로 들어오는 입력값 {params}는 [] 안에 들어간 변수값이 들어오는 건가요? 그래서 그냥 nextjs 스펙상 무조건promise 로 params 가 주어지게 되는건가요?
너무너무 헷갈려서 그런데, 동적라우팅/정적 라우팅 별, 그리고 Clientside /serverside 별로 4가지로 나누어서 params 가져오는 방법을 설명해주실수 있나요? 너무너무 헷갈리네요.... 동적/정적라우팅에 따라 나뉘나요, client/server 에 따라 나뉘나요? 후자인걸로 생각하고 있긴 한데 맞는지 너무 헷갈리네요..
감사합니다! 좋은 하루 되세요!
Answer 1
0
안녕하세요 🙂
Next.js 15부터 params가 Promise로 변경되었습니다. 스펙이 그러합니다.
// app/posts/[slug]/page.tsx
export default async function PostPage({ params }) {
const { slug } = await params // Next.js 15+
// ...
}'use client'
import { useParams } from 'next/navigation'
export default function ClientComponent() {
const params = useParams()
const slug = params.slug // 동기적 접근
}
rehype-sanitize 설치의 필요성
0
92
2
Notion API-DB 연결이 안돼요
0
542
2
private folders 와 전역 폴더
0
70
2
퀴즈 질문 풀이 오류
0
86
2
Streaming 관련해서 문의드립니다.
0
74
2
ISR 매커니즘에 대한 궁금증
0
68
2
cursor AI 프로젝트 룰 관련 질문 드립니다.
0
344
2
streaming 페이지 보완 필요
1
56
2
remark-gfm
0
111
2
마크업 파트 가독성 향상 방법
0
63
2
Next.js 블로그 결과물 공유 이벤트 진행 여부
0
69
1
블로그 PostCard 이미지 상단 여백
0
70
3
flex-col 과 space-y-6 차이
0
118
1
컴파일 에러 및 의존성 충돌 문제
0
106
2
TypeError: Invalid URL
0
172
2
세션 6의 퀴즈 5번 정답 옵셔널 캐치올 아닌가요?
1
73
2
상세 페이지 404 에러 발생
0
113
2
스타일이 적용 안되는 문제
0
96
2
cursorAI에 rule 생성 시 rule type이 안 나오는 현상 발생
0
177
3
클라이언트 컴포넌트 사전 렌더링
0
52
2
상세페이지 구현 Author의 name 프러퍼티가 조회가 안됩니다.
1
71
2
A
0
94
2
unstable_cache 사용 시 적정 revalidate 값 문의
0
91
2
useActionState에서 반환값 필드 생략 시 조건에 따라 에러 발생 여부가 다른 이유
0
85
2

