Gatsby pageContext在GraphQL中为空

问题描述 投票:1回答:1

我正在通过Contentful构建具有多种语言的动态盖茨比网站。我在pageContextgatsby-node.js对象中传递页面的ID,以获取每个页面上的必要内容,但是在根URL /上,pageContext对象内部的数据丢失。

在我的index.js文件中,pageContext在根页/上为空,但参数pageContext.isCreatedByStatefulCreatePages设置为true。但是,对于在gatsby-node.js中创建的每个其他页面,pageContext对象都会按原样出现。

我正在gatsby-node.js中创建我的页面,如下所示:

const baseUrl = locale === "da" ? "/" : `/${locale}/`
console.log(`${baseUrl}${slug ? slug : ""}`)
createPage({
  path: `${baseUrl}${slug ? slug : ""}`,
  component: path.resolve("./src/pages/index.js"),
  context: {
    id,
    slug,
    locale,
  },
})

我在[C0以上]输出以下内容:

console.log

我可以看到每个页面都已创建。在除索引页面(“ /”)之外的任何其他页面上,isCreatedByStatefulCreatePages都设置为/virksomhed /konsulent /kontakt / <-- Page context is empty here /om-os /en/company /en/consultant /en/contact /en/ /en/about-us

[我怀疑盖茨比以某种方式覆盖了根URL的“ createPage”,但我在文档中找不到任何描述它的内容。

任何有此经验的人?

javascript graphql gatsby contentful
1个回答
0
投票

是,默认情况下,Gatsby为false中的每个js文件创建一个页面。尝试将模板移至src/pages之类的其他文件夹,然后相应地调整src/templatescomponent的值。

© www.soinside.com 2019 - 2024. All rights reserved.