gatsby graphql 无法查询类型 "Query" 上的字段 "allTribeEvents"
gatsby graphql Cannot query field "allTribeEvents" on type "Query"
我将 gatsby 与 wordpress 结合使用,以显示来自 wordpress 的事件日历 API 的事件。我正在使用插件 gatsby-source-tribe-events
访问 allTribeEvents
graphql 字段。问题是,如果我没有在 wordpress 上发布任何事件,则不会创建字段 allTribeEvents
然后如果我 运行 我在 gatsby 上的 graphql 查询我得到
Cannot query field "allTribeEvents" on type "Query"
所以我的问题是如何检查该字段是否存在于graphql中并基于它有条件地查询。
我的代码:
显示事件的 React 组件:
export default function Events() {
const data = useStaticQuery(graphql`
query EventsQuery {
allTribeEvents {
...
}
}`);
//then I return my component based on the data
}
所以重点是,如果没有帖子存在,"allTribeEvents"
不会在 grapqhl 中创建,我会得到一个错误
So my problem is how to check if the field exists in graphql and query
conditionally based on it .
简短的回答,你不能。本质上是因为当您查询某些内容时,您期望得到一些结果。这里的问题是,由于定义的工作流(WordPress -> Gatsby -> GraphQL 节点创建),步骤被破坏了。
在这种情况下,理想的解决方案是定义一个 Custom GraphQL Schema Definition 来帮助您告诉 Gatsby allTribeEvents
可以是 null
.
另一种可能的解决方法(不太干净)是创建一个空的部落事件(可能有空白或某种定义的字段)并在前端处理它以避免打印它(假设你有名为“-”的事件,如果您在 GraphQL 查询中找到该字段,请对其进行过滤)。
我将 gatsby 与 wordpress 结合使用,以显示来自 wordpress 的事件日历 API 的事件。我正在使用插件 gatsby-source-tribe-events
访问 allTribeEvents
graphql 字段。问题是,如果我没有在 wordpress 上发布任何事件,则不会创建字段 allTribeEvents
然后如果我 运行 我在 gatsby 上的 graphql 查询我得到
Cannot query field "allTribeEvents" on type "Query"
所以我的问题是如何检查该字段是否存在于graphql中并基于它有条件地查询。
我的代码:
显示事件的 React 组件:
export default function Events() {
const data = useStaticQuery(graphql`
query EventsQuery {
allTribeEvents {
...
}
}`);
//then I return my component based on the data
}
所以重点是,如果没有帖子存在,"allTribeEvents"
不会在 grapqhl 中创建,我会得到一个错误
So my problem is how to check if the field exists in graphql and query conditionally based on it .
简短的回答,你不能。本质上是因为当您查询某些内容时,您期望得到一些结果。这里的问题是,由于定义的工作流(WordPress -> Gatsby -> GraphQL 节点创建),步骤被破坏了。
在这种情况下,理想的解决方案是定义一个 Custom GraphQL Schema Definition 来帮助您告诉 Gatsby allTribeEvents
可以是 null
.
另一种可能的解决方法(不太干净)是创建一个空的部落事件(可能有空白或某种定义的字段)并在前端处理它以避免打印它(假设你有名为“-”的事件,如果您在 GraphQL 查询中找到该字段,请对其进行过滤)。