[英]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.