React

getStaticProps/getServerSideProps can not be attached to the page component

Asset Type
NextJS
File Type
When to use
2022/03/26
Created by
Last edited time
2022/05/05 13:03
Reference
Reference2

getStaticProps/getServerSideProps는 페이지 구성 요소에 연결할 수 없습니다.

이 오류가 발생한 이유

페이지 구성 요소 중 하나 getStaticProps에 getStaticPaths, 또는 getServerSideProps별도의 내보내기 대신 구성원으로 첨부했습니다.
이러한 메소드는 동일한 방식으로 첨부할 수 없으며 getInitialProps자체 내보내기여야 합니다.
Move the method to it's own export from your page.
고치기 전
function Page(props) { return <p>hello world</p> } Page.getStaticProps = () => ({ props: { hello: 'world', }, }) export default Page
TypeScript
복사
변경 후
function Page(props) { return <p>hello world</p>} export default Page export const getStaticProps = () => ({ props: { hello: 'world', }, })
TypeScript
복사
export default function Post({ post }) { // 컴포넌트에 default를 빼먹지 말자. console.log(post); return ( <div className="post"> <h1>{props.title}</h1> </div> ); } export async function getStaticPaths() { const res = await fetch(`http://localhost:1337/api/posts/`); const posts = await res.json(); // paths will be an array of the paths to the posts const paths = posts.data.map((post) => ({ params: { slug: post.attributes.Slug, }, })); console.log(`paths`, paths); return { paths, fallback: false, }; } export async function getStaticProps({ params }) { const { slug } = params; const res = await fetch(`http://localhost:1337/api/posts/${slug}`); const data = await res.json(); const post = data[0]; return { props: { post, }, }; }
TypeScript
복사