簡體   English   中英

GraphQL 中的 Gatsby pageContext 為空

[英]Gatsby pageContext empty in GraphQL

我正在通過 Contentful 構建一個具有多種語言的動態 Gatsby 網站。 我在我的gatsby-node.js中的pageContext對象中傳遞了頁面的 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,
  },
})

我上面的console.log輸出如下:

/virksomhed
/konsulent
/kontakt
/ <-- Page context is empty here
/om-os
/en/company
/en/consultant
/en/contact
/en/
/en/about-us

我可以看到每個頁面都已創建。 在除索引頁 ("/") 之外的任何其他頁面上, isCreatedByStatefulCreatePages 設置為false

我懷疑 Gatsby 以某種方式覆蓋了根 URL 的“createPage”,但我無法在文檔中找到任何描述它的內容。

誰有這方面的經驗?

是的,Gatsby 默認為src/pages中的每個 js 文件創建一個頁面。 嘗試將模板移動到其他文件夾,如src/templates並相應地調整createPage()component的值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM