{ const id = context.params!.id; const book = await fetchOnebiteBook(Number(id)); return { props: { books, } }"> { const id = context.params!.id; const book = await fetchOnebiteBook(Number(id)); return { props: { books, } }"> { const id = context.params!.id; const book = await fetchOnebiteBook(Number(id)); return { props: { books, } }">
export const getStaticPaths = () => {
	return {
		fallback: "false", 
	}
}

export const getStaticProps = async (
	context: GetStaticPropsContext
	) => {
	const id = context.params!.id;
	const book = await fetchOnebiteBook(Number(id));
	
	return {
		props: {
			books,
		}
	}
export const getStaticPaths = () => {
	return {
		fallback: "blocking",
	}
}

export const getStaticProps = async (
	context: GetStaticPropsContext
	) => {
	const id = context.params!.id;
	const book = await fetchOnebiteBook(Number(id));
	
	return {
		props: {
			books,
		}
	}
export const getStaticPaths = () => {
	return {
		paths: [
			{ params: { id : "1" } }, //반드시 문자열
			{ params: { id : "2" } },
			{ params: { id : "3" } },
		],
		
		fallback: "true",
	}
}

export const getStaticProps = async (
	context: GetStaticPropsContext
	) => {
	const id = context.params!.id;
	const book = await fetchOnebiteBook(Number(id));
	
	return {
		props: {
			books,
		}
	}

fallback 옵션을 통해 동적 경로에 대해 대응할 수 있다.

fallback 상태 로딩 처리

export const getStaticPaths = () => {
	return {
		paths: [
			{ params: { id : "1" } }, //반드시 문자열
			{ params: { id : "2" } },
			{ params: { id : "3" } },
		],
		
		fallback: "true",
	}
}

export const getStaticProps = async (
	context: GetStaticPropsContext
	) => {
	const id = context.params!.id;
	const book = await fetchOnebiteBook(Number(id));
	
	if (!book) { //404페이지로 리다이렉트
		return {
			notFound: true,
		};
	}
	
	return {
		props: {
			book,
		}
	}
	
	
	export default function page({ book }): InferGetStaticPropsType<typeof getStaticProps> {
		const router = useRouter()
		
		if (router.isFallback) { // router에서 fallback 상태 추출
			return "로딩 중입니다."
		}
		
		if (!book) {
			return "문제가 발생했습니다. 다시 시도해주세요."
		}
	}