해결된 질문
작성
·
110
·
수정됨
0
안녕하세요 강사님
http://localhost:3000/book/100 URL로 테스트 진행 시에 저는 왜 문제가 발생했습니다. 다시 시도해주세요 문구가 웹페이지에 보이지 않는건가요?
[해결 완료]
강사님 인강에서 아무리 찾아봐도 fetch-one-book.ts 파일에 if (!response.ok) throw new Error(""); 코드를 추가한 내역이 인강에서 보이지가 않습니다.. 몇 번을 되돌려봐도 못찾고 있습니다. 혹시 누락 사항일까요?
import style from "./[id].module.css";
import {GetStaticPropsContext, InferGetStaticPropsType} from "next";
import fetchOneBook from "@/lib/fetch-one-book";
import { useRouter } from "next/router";
export const getStaticPaths = () => {
return {
paths: [
{ params: { id: "1" } },
{ params: { id: "2" } },
{ params: { id: "3" } },
],
// fallback: "blocking",
fallback: true,
};
};
export const getStaticProps = async (
context: GetStaticPropsContext
) => {
const id = context.params!.id;
const book = await fetchOneBook(Number(id));
return {
props: {
book,
},
};
};
export default function Page({
book,
}: InferGetStaticPropsType<typeof getStaticProps>) {
const router = useRouter();
if (router.isFallback) return "로딩중입니다";
console.log("booktest")
console.log(book)
if (!book) return "문제가 발생했습니다 다시 시도하세요";
const {
id,
title,
subTitle,
description,
author,
publisher,
coverImgUrl,
} = book;
return (
<div className={style.container}>
<div
className={style.cover_img_container}
style={{backgroundImage: `url('${coverImgUrl}')`}}
>
<img src={coverImgUrl} alt={""}/>
</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>
);
}