実現したいこと
- 関数コンポーネントにgetStaticProps()からpropsを渡す
前提
Next.js13の勉強中で、ブログサイトを作成しています。
microCMSからブログ記事のデータをgetStaticPropsで取得して関数コンポーネントに渡すコードを書いたのですがpropsがundefineとなってしまいます。
値の取得はapi.js内のgetPostBySlug(slug)を使って行っています。
発生している問題・エラーメッセージ
エラーメッセージ - error app\blog\schedule\page.js (8:16) @ title - error TypeError: Cannot read properties of undefined (reading 'title') at Schedule (./app/blog/schedule/page.js:18:28) at stringify (<anonymous>) digest: "3697126974" 6 | return( 7 | <Container> > 8 | <h1>{blog.title}</h1> | ^ 9 | </Container> 10 | ) 11 | }
該当のソースコード
JavaScript page.js
1import { getPostBySlug } from "lib/api"; 2import Container from "components/container"; 3 4export default function Schedule({ blog }){ 5 return( 6 <Container> 7 <h1>{blog.title}</h1> 8 </Container> 9 ) 10} 11 12export async function getStaticProps(){ 13 const slug = 'schedule' 14 15 const post = await getPostBySlug(slug) 16 17 return { 18 props: { 19 blog: post 20 }, 21 } 22}
JavaScript api.js
1import { createClient } from 'microcms-js-sdk' 2 3export const client = createClient({ 4 serviceDomain: process.env.SERVICE_DOMAIN, 5 apiKey: process.env.API_KEY, 6}) 7 8export async function getPostBySlug(slug) { 9 try { 10 const post = await client.get({ 11 endpoint: 'blogs', 12 queries: { filters: `slug[equals]${slug}` } 13 }).then((res) => console.log(res)); 14 return post 15 } catch (error) { 16 console.log('~~getPostBySlug~~') 17 console.log(error) 18 return null 19 } 20}
試したこと
書籍や公式ドキュメントのコードを見たり、propsをblog: post.contents[0]に書き換えたりしましたがうまく値を渡せませんでした。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。

回答1件
あなたの回答
tips
プレビュー
下記のような回答は推奨されていません。
このような回答には修正を依頼しましょう。
また依頼した内容が修正された場合は、修正依頼を取り消すようにしましょう。