inflearn logo
강의

Course

Instructor

Bite-sized Next.js

4.1) Data Fetching in App Router

params부분 에러

Resolved

398

nobleser9617

23 asked

0

fetch 부분에서 다음과 같이 작성하였는데 params.id부분에서 id 부분에
Property 'id' does not exist on type 'Promise<{ id: string | string[]; }>'.ts(2339)

이러한 에러가 발생합니다.

 const result = await fetch(
    `${process.env.NEXT_PUBLIC_API_SERVER_URL}/book/${params.id}`
  );

react typescript next.js

Answer 3

0

winterlood

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

params는 Promise로 래핑된 비동기 객체입니다. 따라서 내부의 값을 꺼내 사용하시려면 await를 통해 비동기 작업이 끝나기 까지 기다렸다가 그 결과값을 꺼내 사용하셔야 합니다. 마치 const {id} = await params 처럼 말이죠 😃

자세한 내용은 우리 강의의 3.2) 페이지 라우팅 설정하기 12분 02초 경에 설명 드리고 있으니 해당 부분만 짧게 다시 수강하시는 것도 추천드립니다!

 

0

nobleser9617

일단 이렇게 parmas를 await으로 감싸니 해결됐는데 이게 맞는 방법일까요?

    `${process.env.NEXT_PUBLIC_API_SERVER_URL}/book/${(await params).id}`

0

nobleser9617

전체 코드도 첨부 하겠습니다

import style from "./page.module.css";

export default async function Page({
  params,
}: {
  params: Promise<{ id: string | string[] }>;
}) {
  const result = await fetch(
    `${process.env.NEXT_PUBLIC_API_SERVER_URL}/book/${params.id}`
  );
  if (!result.ok) {
    return <div>에러 발생 ...</div>;
  }

  const book = await result.json();

  const { id, coverImgUrl, title, subTitle, author, publisher, description } =
    book;

  return (
    <div className={style.container}>
      <div
        className={style.cover_img_container}
        style={{ backgroundImage: `url('${coverImgUrl}')` }}
      >
        <img src={coverImgUrl} />
      </div>
      <div className={style.title}>{title}</div>
      <div className={style.subTitle}>{subTitle}</div>
      <div className={style.author}>
        {author} | {publisher}
      </div>
      <div className={style.description}>{description}</div>
    </div>
  );
}

Next.js + Tanstack Query BFF 구조 질문

0

12

1

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

0

27

2

모달 관련 질문

0

34

3

렌더링 관련 질문

0

78

2

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

0

62

2

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

0

60

2

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

0

73

2

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

0

92

3

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

0

97

3

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

0

55

2

getServerSideProps 함수와 SSR의 관계

0

76

6

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

0

58

2

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

0

112

2

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

0

86

2

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

0

71

2

배포 시 오류 발생

0

87

2

백엔드 서버 오류납니다.

0

81

2

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

0

89

1

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

0

103

1

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

0

60

2

빨간줄 설정

0

75

2

익스텐션 질문

0

58

1

강의 들으면서 궁금한 부분 질문드립니다.

0

109

1

서버 배포 에러입니다.

1

98

2