在 Gatsby 中创建没有 createPages API 的变量?
Create variables without the createPages API in Gatsby?
我想知道我是否可以在组件模板之外使用我通过 createPages API 创建的变量。
我的场景是创建一个这样的变量:
pages.forEach(page => {
createPage({
path: `${page.slug}`,
component: path.resolve(`src/templates/page-template.js`),
context: {
title: page.title // My Variable
},
})
现在,在我的 page-template.js
文件中,我导入了一个包含外部 graphql 查询的组件,该查询未包含在 page-template.js
文件中,但我想在查询中使用变量。
我可以在没有 createPages API 的情况下在 Gatsby 中创建变量吗?
您可以通过 pageContext
道具访问它。例如:
const YourComponent = ({ pageContext }) =>
<SomeOtherComponent title={pageContext.title} />
这假设 SomeOtherComponent
是 运行 这个针对外部数据库的 GraphQL 查询,而不是本地 Gatsby GraphQL 服务器。
我想知道我是否可以在组件模板之外使用我通过 createPages API 创建的变量。
我的场景是创建一个这样的变量:
pages.forEach(page => {
createPage({
path: `${page.slug}`,
component: path.resolve(`src/templates/page-template.js`),
context: {
title: page.title // My Variable
},
})
现在,在我的 page-template.js
文件中,我导入了一个包含外部 graphql 查询的组件,该查询未包含在 page-template.js
文件中,但我想在查询中使用变量。
我可以在没有 createPages API 的情况下在 Gatsby 中创建变量吗?
您可以通过 pageContext
道具访问它。例如:
const YourComponent = ({ pageContext }) =>
<SomeOtherComponent title={pageContext.title} />
这假设 SomeOtherComponent
是 运行 这个针对外部数据库的 GraphQL 查询,而不是本地 Gatsby GraphQL 服务器。