如何使用变量更新graphql中的条目

Posted

技术标签:

【中文标题】如何使用变量更新graphql中的条目【英文标题】:How to udpate an entry in graphql using variables 【发布时间】:2019-06-26 14:26:25 【问题描述】:

如果重要的话,我正在使用带有 Strapi cms 的 GraphQL 插件。

我不知道如何使用动态变量更新现有查询。我的原始突变不使用变量:

mutation 
  updateExam(input: 
    where: 
      id: "1234"
    ,
    data: 
      questions: "hello"
    
  ) 
    exam 
      questions
    
  

我了解到,如果我想使用变量创建一个新条目,我应该这样写(David Maze 在这里回答:How to pass JSON object in grpahql and strapi):

const response = await strap.request('POST', '/graphql', 
  data: 
    query: `mutation CreateExam($input: CreateExamInput!) 
  createExam(input: $input) 
    exam  name, desription, time, questions 
  
`,
    variables: 
      input: 
        name: examInfo.newExamName,
        desription: examInfo.newExamDescription,
        time: Number(examInfo.newExamTime),
        questions: [ gf: "hello" ],
        subjects: [this.state.modalSubjeexisting
      
    
  
);

但是如何更新现有查询?我应该把它放在哪里

where: id: "1234"

如何提供条目的现有 id?

【问题讨论】:

【参考方案1】:

我不知道这个strapi cms,但它看起来你已经在工作的突变,我会尝试这样的更新:

    const response = await strap.request('POST', '/graphql', 
      data: 
        query: `mutation UpdateExam($input: UpdateExamInput!) 
          updateExam(input: $input) 
            exam  
              questions 
            
          
        `,
        variables: 
          input: 
            where: 
              id: examInfo.id
            ,
            data: 
              questions: [ gf: "hello" ]
            
          
        
      
    );

试一试,看看它是否有效。

【讨论】:

非常感谢它的工作!我不得不更换第二个 UpdateExamInput!更新考试输入!现在我将尝试找出为什么创建语法不起作用非常感谢 我猜你没有在你的创建查询中设置 data: inside input: object?

以上是关于如何使用变量更新graphql中的条目的主要内容,如果未能解决你的问题,请参考以下文章

如何更新 graphql 条目?

使用 GraphQL 变量和 Next JS 过滤数组中的数据

如何使用 graphql 更新集合中的所有记录

如何使用 Graphql 动态更新一个表中的多行

在 Graphcool / GraphQL 中发布更新突变时如何“更新”数组/嵌套字段?

如何更新`info` graphql中的SelectionSet?