Javascript 在Gatsby中创建没有createPages API的变量?

Javascript 在Gatsby中创建没有createPages API的变量?,javascript,reactjs,graphql,gatsby,Javascript,Reactjs,Graphql,Gatsby,我想知道是否可以在组件模板之外使用CreatePagesAPI创建的变量 我的方案是创建如下变量: pages.forEach(page => { createPage({ path: `${page.slug}`, component: path.resolve(`src/templates/page-template.js`),

我想知道是否可以在组件模板之外使用CreatePagesAPI创建的变量

我的方案是创建如下变量:

            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的情况下创建变量吗?

您可以通过
pageContext
道具来访问该变量。例如:

const YourComponent = ({ pageContext }) => 
  <SomeOtherComponent title={pageContext.title} />
constyourcomponent=({pageContext})=>

这假设
SomeOtherComponent
正在针对外部数据库而不是本地Gatsby GraphQL服务器运行此GraphQL查询。

非常感谢!这对我帮助很大。