인프런 커뮤니티 질문&답변
검색을 하면 데이터가 나오지 않습니다..
해결된 질문
작성
·
84
0

index.tsx에 getStaticProps로 변경하고 검색을 하면 데이터가 나오질 않습니당..!ㅠ0ㅠ
검색을 한 뒤 페이지를 이동하면 오류 내용은 아래와 같습니다.
챗지피티한테 물어봐도 감이 안 와서 질문 올려봅니다..
import SearchableLayout from "@/components/searchable-layout";
import style from "./index.module.css";
import { ReactNode } from "react";
import BookItem from "@/components/book-item";
import { InferGetStaticPropsType } from "next";
import fetchBooks from "@/lib/fetch-books";
import fetchRandomBooks from "@/lib/fetch-random-book";
export const getStaticProps = async () => {
console.log("인덱스 페이지");
const [allBooks, recoBooks] = await Promise.all([
fetchBooks(),
fetchRandomBooks(),
]);
return {
props: {
allBooks,
recoBooks,
},
};
};
export default function Home({
allBooks,
recoBooks,
}: InferGetStaticPropsType<typeof getStaticProps>) {
return (
<div className={style.container}>
<section>
<h3>지금 추천하는 도서</h3>
{recoBooks.map((book) => (
<BookItem key={book.id} {...book} />
))}
</section>
<section>
<h3>등록된 모든 도서</h3>
{allBooks.map((book) => (
<BookItem key={book.id} {...book} />
))}
</section>
</div>
);
}
Home.getLayout = (page: ReactNode) => {
return <SearchableLayout>{page}</SearchableLayout>;
};
답변 2
0
이정환 Winterlood
지식공유자
안녕하세요 지수님 이정환입니다.
문제는 fetchBooks 함수에 있었네요 함수 내부에서 검색어 q가 있을 경우 url 끝에 쿼리 파라미터를 추가하는 과정 중에 템플릿 리터럴이 아닌 일반 문자열을 사용하셨습니다. 쌍따옴표 (")가 아닌 백틱(`)을 사용하도록 수정하셔야 합니다.

0
이정환 Winterlood
지식공유자
안녕하세요 이정환입니다.
현재 보내주신 코드만으로는 정확한 원인 파악이 어렵습니다. 일단 인덱스 페이지의 코드 자체에는 문제가 없어보입니다. .next 폴더를 삭제하고 프로젝트를 다시 가동해보시거나 그래도 안된다면 전체 프로젝트 코드를 Github이나 GoogleDrive를 통해 전달해주세요
PS. 질문 올리시기 전, 질문 가이드라인도 한번 읽어주시면 감사하겠습니다







네! 감사합니다 :)