说我有两个GraphQL查询。
查询A:
{
entry(section: [privacyStatement]) {
... on PrivacyStatement {
title
slug
pageTitle
metaDescription
metaImage {
id
title
url
}
}
}
}
查询B:
{
entry(section: [contact]) {
... on Contact {
title
slug
pageTitle
metaDescription
metaImage {
id
title
url
}
}
}
}
现在,我希望两个查询都包含另一个查询:
查询C:
{
services: categories(groupId: 1, level: 1) {
id
title
slug
children {
id
title
slug
}
}
}
如何做到这一点而不在查询A和查询B中重复查询C(查询不会很干)?如果我理解正确,则只能在一个查询中对片段使用片段。
更新:
所以我的意思是这样的:
Query A {
entry(section: [privacyStatement]) {
... on PrivacyStatement {
title
slug
pageTitle
metaDescription
metaImage {
id
title
url
}
}
}
}
QueryC
和:
Query B {
entry(section: [contact]) {
... on Contact {
title
slug
pageTitle
metaDescription
metaImage {
id
title
url
}
}
}
}
QueryC
答案 0 :(得分:0)
您可以在查询和突变中定义片段,并像这样使用它们:
Query A {
entry(section: [privacyStatement]) {
... on PrivacyStatement {
title
slug
pageTitle
metaDescription
metaImage {
id
title
url
}
}
}
...C
}
fragment C on Query {
services: categories(groupId: 1, level: 1) {
id
title
slug
children {
id
title
slug
}
}
}
您无法定义类似这样的内容!
query A(...){...}
query B(...){...}