我正在使用gatsby和wordpress來顯示來自wordpress的事件日歷API的事件。我正在使用插件gatsby-source-trib-events來訪問allTribeEvents graphql欄位。問題是,如果我在wordpress上沒有發布任何事件,那么allTribeEvents欄位就不會被創建,然后如果我在gatsby上運行我的graphql查詢,我會得到
Cannot query field "allTribeEvents" on type "Query"
所以我的問題是如何在graphql中檢查欄位是否存在,并根據它有條件地進行查詢。
我的代碼:
顯示事件的反應組件 :
export default function Events() {
const data = useStaticQuery(graphql`)
query EventsQuery {
allTribeEvents {
...
}
}`)。)
//then I return my component based on the data .
所以重點是,如果沒有帖子存在,"allTribeEvents"在grapqhl中沒有被創建,我得到一個錯誤
所以我的問題是如何在graphql中檢查欄位是否存在,并根據它有條件地查詢。 并在此基礎上有條件地查詢。
簡短的回答,你不能。本質上是因為當你查詢某個東西時,你期望得到一些結果。這里的問題是,由于定義的作業流程(WordPress -> Gatsby -> GraphQL節點創建),這些步驟被打破了。
在這種情況下,理想的解決方案是定義一個Custom GraphQL Schema Definition,這將有助于你告訴Gatsby,allTribeEvents可以是null。
另一個可能的解決方法(遠沒有那么干凈)是創建一個空的部落事件(也許有空的空格或有某種定義的欄位),并在前端處理它,以避免列印它(比方說你有一個名為"-"的事件,如果你在GraphQL查詢中找到這個欄位,就過濾它)。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/324423.html
標籤:
上一篇:Oracle12C-JSON_TABLE列中的%TYPE不起作用
下一篇:如何修復。TypeError:unsupportedoperandtype(s)for/:'str'和'float'。
