第一次嘗試蓋茨比和它的一個很高興。但是我遇到了一個奇怪的問題GraphQL:GraphQL忽略了一些(但不是全部)任意分配降價frontmatter數據
我使用的蓋茨比源文件系統和蓋茨比,變壓器備註插件,從降價文件中提取內容。
的frontmatter數據不是在所有這些(除了title
)的相同。一些有date
字符串(博客文章),同樣有一個tag
數組,有一些有gallery
對象。
現在的問題是,一些本人爲地賦予frontmatter數據的GraphQL可用,有些不是。例如,如果我試圖查詢日期,我總是會得到類型爲frontmatter_2
的「GraphQL錯誤未知字段date
」。而如果我查詢標籤,我會爲那些包含一個的項目獲取標籤數組,而對於那些不包含這些項目的項目則獲得標籤數組。
這裏有什麼問題?我如何總能得到null
作爲節點中不存在的字段的值?
這也許注意到,這種行爲變化取決於我的降價文件的目錄結構。如果我移動它們,一些Frontmatter字段在GraphQL中變得可用,以前不是,反之亦然。它也發生了一些代碼更改通過HMR被推送後,一些字段變得可用 - 但是在我重新啓動Gatsby之後,儘管沒有觸及代碼之間,它們又一次消失了。
非常感謝您的幫助!
編輯:
失敗敲我的頭這一段時間後,我使出確保所有降價frontmatter具有相同類型的字段相同。
我猜
TODO鏈接到文檔中的自動推理類型/場。
documentation的一部分就是關於這個問題。
當我有更多時間時,我想了解更多關於GraphQL及其在Gatsby中的工作原理。任何指針讚賞。
不是一個直接的答案,但檢查GraphiQL與蓋茨比,這是一個巨大的幫助,瞭解什麼時候可用的數據。 http:// localhost:8000/___ graphql – chmac
感謝您的評論。我瞭解GraphiQL,這確實非常有幫助。然而,我的問題是關於gatsby-transformer-remark如何解析前端並決定哪些數據在節點接口中如何結束。 - 自從我問這個問題以來,有很多更新。也許它已被修復......我很快就要再試一次。 –
Gatsby根據可用數據「推斷」GraphQL模式。 [這](https://github.com/gatsbyjs/gatsby/issues/3913)問題表明,有些領域,如果不存在於每個記錄,可能偶爾會被丟棄。確保每個文檔都在每個文檔上的解決方法可能是最強大的解決方案,至少現在是這樣。 – chmac