Notice
Recent Posts
Recent Comments
Link
반응형
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
Tags
- 문자열순서바꾸기
- 스프링 데이타 JPA
- 객체의 밸류값만 찾기
- 중복단어제거
- 시퀄 문법
- 코딩 어?
- 레디스 확인
- 중첩배열평탄화
- 배엘에서 스왑
- ...점점점문법
- 아래로펼치기
- 5.3.8 Modifying Queries
- ubuntu타임존
- 프론트엔드 스쿨
- 재귀스왑
- @Moditying @Query
- sql 문자열 패턴 검색
- 깃 토큰 만료
- 중복문자제거
- 중복 문자열
- lastIndexOf()
- 문자열 중복
- 중첩배열
- 우분투 시간 변경
- 객체의키값만 찾기
- js 문자열을 문자배열로
- 중복된 단어
- indexOf()
- 제로베이스
- 단어 제거
Archives
- Today
- Total
코딩기록
트러블슈팅) Next.js15.1 버전 업데이트 이후 params의 타입이 Promise로 변경되면서 빌드 시 타입 오류가 발생 본문
카테고리 없음
트러블슈팅) Next.js15.1 버전 업데이트 이후 params의 타입이 Promise로 변경되면서 빌드 시 타입 오류가 발생
뽀짝코딩 2025. 6. 21. 00:45728x90
Next.js 15 App Router에서 page.tsx의 타입을 자동 추론하는 과정에서 Promise<any>와 충돌하는 타입 오류
src>app>items>[id]>page.tsx
[수정전]
import { cartItemList } from "@/components/cart/data/cartItemList";
import ItemDetail from "@/components/items/ItemDetail";
export function generateStaticParams() {
return cartItemList.map((item) => ({
id: item.id,
}));
}
// ✅ 타입을 인라인으로 선언 (interface 쓰지 마세요)
export default function Page({ params }: { params: { id: string } }) {
return <ItemDetail productId={params.id} />;
}
원인
Next.js의 15.1 버전 업데이트에 의해 발생하며, params 및 searchParams가 비동기식으로 처리되는 방식으로 전환된 것이 원인.
빌드시 발생한 타입 오류는 params의 기대 타입과 실제 타입의 불일치로 인한 것임.
변경
params의 타입을 Promise로 감싸 비동기 처리로 변경
[수정후]
import { cartItemList } from "@/components/cart/data/cartItemList";
import ItemDetail from "@/components/items/ItemDetail";
// ✅ 정적 경로 생성을 위한 함수
export function generateStaticParams(): { id: string }[] {
return cartItemList.map((item) => ({
id: item.id,
}));
}
// ✅ Next.js 15 기준 - params는 Promise 형태로 받아서 await 처리
export default async function Page({ params }: { params: Promise<{ id: string }> }) {
const { id } = await params;
return <ItemDetail productId={id} />;
}
참고
인프런 질의응답
반응형
Comments