如何:带动态区域/组件的Strapi GraphQL突变
我正在尝试为Strapi创建一个变种,创建/编辑动态区域。Strapi中的动态分区是联合类型。如何使用动态区域进行图形ql突变 确切地说,。这里的内容应该是什么? 输入:{data:{inhalt:[{text:“hallo”}]} 在下面的示例中,有一个名为impressum的组件Inhalt是动态区域。它包含不同的组件:ComponentPageText、ComponentPageInformation和ComponentPageArticle 这种突变如何:带动态区域/组件的Strapi GraphQL突变,graphql,strapi,Graphql,Strapi,我正在尝试为Strapi创建一个变种,创建/编辑动态区域。Strapi中的动态分区是联合类型。如何使用动态区域进行图形ql突变 确切地说,。这里的内容应该是什么? 输入:{data:{inhalt:[{text:“hallo”}]} 在下面的示例中,有一个名为impressum的组件Inhalt是动态区域。它包含不同的组件:ComponentPageText、ComponentPageInformation和ComponentPageArticle 这种突变 mutation { updat
mutation {
updateImpressum(input: {data: {inhalt: [{text: "hallo"}]}}) {
impressum {
inhalt {
__typename
}
}
}
}
返回
预期类型为ImpressMinHaltDynamicZoneInput!,找到{text:\'hallo\'};找不到组件。应为以下之一:ComponentPageText、ComponentPageInformation、ComponentPageArticle
这将返回相同的错误
mutation {
updateImpressum(input: {data: {inhalt: [{ComponentPageText: {text: "hallo"}}]}}) {
impressum {
inhalt {
__typename
}
}
}
}
模式内省返回
{
"name": "ComponentPageText",
"kind": "OBJECT"
}
结构(评论后添加)
impressum=>inhalt=>[page.text,page.information,
第页[文章]
对应于
单一类型=>动态区域=>[组件]
组件中的字段
页面文本:文本页面信息:标题、文本、图像
页面.文章:与收藏类型的关系-文章 模式内省
{
"name": "updateImpressum",
"__typename": "__Field",
"description": "",
"args": [
{
"name": "input",
"description": "",
"__typename": "__InputValue",
"type": {
"kind": "INPUT_OBJECT",
"name": "updateImpressumInput",
"possibleTypes": null,
"interfaces": null,
"inputFields": [
{
"name": "data",
"description": "",
"__typename": "__InputValue"
}
]
}
}
]
}
要使用组件,您需要这样的东西:
mutation($text: String!) {
updateImpressum {
impressum {
inhalt {
__typename
... on MyComponentName {
text: $text
}
}
}
}
}
提示:使用/graphql客户端通过键入
“…在”
技巧2:使用片段
下面是一个如何在Strapi中变异动态区域的示例。在我的例子中,我有一个名为Tests的集合和一个名为newquestion的动态区域,该区域位于一个名为questions group的组下:
mutation {
createTest(input:{ data:{
title:"Test Title Here"
questions: [
{
__typename: "ComponentQuestionsGroupNewQuestion"
__component: "questions-group.new-question"
title:"What is 4 + 20?"
correct_answer: "24"
wrong_answer: "420"
}
]
}}) {
test {
id
}
}
}
您必须在dynamic zone子句中提供
\uu typename:
和\uu组件:
您好,请分享您的组件和内容类型结构。@JimLAURIE我在问题中添加了上述结构。这就是你的意思吗?你还需要更多的信息吗?谢谢你的评论,但我不知道的不是变异后如何查询,而是变异本身。意思是这个字符串“updateImpressum(输入:{data:{inhalt:[{text:}]})”。如果我在问题中没有清楚地表达这一点,我很抱歉。这是有效的。非常感谢你的回答!很抱歉,我没有及时回复。现在(我在MongoDB中使用Strapi 3.6.2)您不必再包含\u组件了。您只需提供\uuu typename
,它就能正常工作。