inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

2-16 ssg 구현중 에러입니다.

해결된 질문

115

나를응원해

작성한 질문수 3

0

image.png

안녕하세요 강사님, 강의를 듣는 중 문제가 발생해 글 남깁니다.
book/id 상세페이지에서 SSG getStaticPaths를 적용중인데, id를 인식을 못해 에러가 발생합니다.


Error: A required parameter (id) was not provided as an array received string in getStaticPaths for /book/[[...id]]

강의에 의하면, books/1 은 보여야 하는데 페이지가 보이지 않네요
오타인 것 같아 강사님 깃헙 코드도 복사해서 붙여봤는데 에러가 납니다 혹시 다른 문제가 있을까요?

 

에러 메세지에는 id가 제공이 안된다고 하는데,
제가 보기에는 staticProps에 맞게 변경한거 같은데, 왜 에러가 날까요??

image.png

 

react typescript next.js

답변 2

0

이정환 Winterlood

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

우리 강의에서는 book 페이지를 옵셔널 캐치올 라우트인 [[...id]].tsx가 아닌 일반 동적 경로인 [id].tsx로 사용하고 있습니다. 해당 부분 수정하시면 문제가 해결됩니다.

옵셔널 캐치올 라우트(세그먼트) 에서는 여러개의 URL 파라미터가 존재할 수 있기 때문에 다음과 같이 URL 파라미터를 배열 형태로 작성해 주셔야 합니다.

export const getStaticPaths = () => {
  return {
    paths: [
      { params: { id: ["1"] } },
      { params: { id: ["2"] } },
      { params: { id: ["3"] } },
    ],
    fallback: true,
  };
};

0

나를응원해

아! 넵 적용해보니 됐습니다. 감사합니다ㅠㅠㅠ.......

폴더명 강의 실습하던걸 그대로 가져왔었군요...허허.

0

인프런 AI 인턴

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

getStaticPaths에서 발생하는 문제는 보통 paths의 형식, 즉 제공되는 값이 예상되는 형식과 맞지 않을 때 발생할 수 있습니다. Next.js에서 getStaticPaths를 사용하여 동적 경로를 사전 렌더링할 때 요구되는 형태는 배열 안에 객체 구조로 되어야 합니다.

현재 error 메시지로 보아 id가 배열 형태가 아닐 때 발생하는 것으로 예상됩니다. Next.js에서는 페이지 경로가 동적 세그먼트를 포함할 경우, 이 경로의 dynamic segment 데이터가 배열로 전달되어야 하며, [...id]는 여러 값을 배열로 처리할 수 있게 해줍니다.

가능한 해결 방법:

  1. getStaticPaths 수정 확인: getStaticPaths 함수에서 paths를 정의할 때, 경로 객체의 params 값이 배열로 설정되었는지 확인해 보세요. 예를 들어:

    export const getStaticPaths = async () => {
      return {
        paths: [
          { params: { id: ["1"] } },
          { params: { id: ["2"] } },
          { params: { id: ["3"] } },
        ],
        fallback: 'blocking',
      };
    };
    
  2. Next.js 버전 확인: Next.js의 최신 버전을 사용하는 것이 문제 해결에 도움이 될 수 있습니다. 만약 사용중인 버전이 오래되었다면, 업데이트를 고려해보세요.

  3. getStaticProps 쪽 설정 확인: context의 params 값을 잘 받아오는지, 그리고 그 값이 함수 내에서 올바르게 사용되고 있는지 확인하세요. 코드를 잘못 가져왔을 가능성을 염두에 두고 지식공유자님 GitHub에서 가져온 코드가 최신 버전인지도 확인해 보세요.

유사한 토픽에 관련된 논의를 참고하시면 추가적인 힌트를 얻을 수 있습니다:

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

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

0

23

2

next.js 프로젝트

0

29

1

Next.js + Tanstack Query BFF 구조 질문

0

30

2

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

0

34

2

모달 관련 질문

0

42

3

렌더링 관련 질문

0

80

2

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

0

64

2

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

0

65

2

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

0

75

2

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

0

94

3

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

0

101

3

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

0

57

2

getServerSideProps 함수와 SSR의 관계

0

78

6

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

0

61

2

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

0

117

2

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

0

90

2

2.14 Search에서 작성한건 static이긴하지만 CSR이 아닌가요?

0

74

2

배포 시 오류 발생

0

90

2

백엔드 서버 오류납니다.

0

83

2

취약점 제거시 nestjs 버전 문제가 생길까요?

0

93

1

eslint.config.mjs 내 rules 어떻게 설정 하나요?

0

107

1

[book]/[id]/page.tsx 모달 띄울 때 성능 하락 현상은 ReviewList를 불러오면서 발생하는 문제 같습니다.

0

63

2

빨간줄 설정

0

77

2

익스텐션 질문

0

61

1