- Node.js 18.16.0
- Gatsby 5.8.1
gatsby-config.ts
const config: GatsbyConfig = {
siteMetadata: {
siteUrl: "https://example.com",
title: "Example Blog",
myCustomData: myCustomData,
},
graphqlTypegen: true,
}
gatsby-node.ts
export const createSchemaCustomization: GatsbyNode['createSchemaCustomization'] = ({ actions }) => {
const { createTypes } = actions
createTypes(`
type MyCustomData {
text: String
flag: Boolean
}
type SiteSiteMetadata {
myCustomData: MyCustomData
}
`)
}
mypage.tsx
import * as React from "react"
import {
graphql,
PageProps,
} from 'gatsby'
import { GetMyPageQuery } from '../gatsby-types'
const MyPage: React.FC<PageProps<GetMyPageQuery>> = (props) => {
const data = props.data
const site = data?.site
const myCustomData = site?.siteMetadata?.myCustomData
}
export const pageQuery = graphql`
query GetMyPage {
site {
siteMetadata {
myCustomData {
text
flag
}
}
}
}
`
export default MyPage
参考