当前位置: 首页 > 知识库问答 >
问题:

GraphQL突变:不变违规:必须包含查询定义

李良策
2023-03-14

我正在尝试从react应用程序调用graphQL服务器。react代码如下所示:

client.query({
  query: gql`
    mutation{
        addTeam(input:{name:"Somename", label:"somelabel"})
        {error, status}
    }`
 }).then((resp: any) => {
      console.log("Success", resp);
 }).catch(err => {
      throw err;
 })

我得到以下错误:

但是,如果我更改相同的请求,从突变查询,并在我的node-graph QL-server中进行必要的更改以将其处理为查询而不是突变相同的代码工作。

在GraphQL中,突变在语法上与查询相同,唯一的区别是您使用关键字突变而不是查询...

哦,顺便说一句,同样的突变查询在Playground中工作。请帮助伙计们,我的工作有点停止了,因为这个问题。

谢谢

共有2个答案

昌和悦
2023-03-14

当前有一个GitHub问题提到了此错误:https://github.com/apollographql/apollo-client/issues/1539

章宏恺
2023-03-14

对于突变,您应该使用客户端的mutate方法,而不是query方法。该方法的选项可以在文档中找到。Apollo对查询和突变的处理方式持固执态度,因此每个方法都有适合于每个操作行为的不同选项(例如,mutate包括一个refetchquerys选项)。

client.mutate({
  mutation: gql`
    mutation {
      addTeam(input:{name:"Somename", label:"somelabel"}) {
        error
        status
      }
    }`,
})
 类似资料:
  • 我正在开发一个GraphQL API,其中有一个带有初步数据比较的导入特性(在现有数据之间 电流为: API使用者执行GQL查询查询预览导入($数据:字符串),其中,是base64编码的电子表格。在后端解析数据,并在数据库中插入一条guid为的记录。最后,API返回电子表格中的数据与数据库中的数据以及guid之间的差异结果 前端然后要求用户在看到比较(创建、更新、删除)后确认导入。为此,向API发

  • 我尝试执行Graphql客户端查询。遗憾的是,我找不到任何关于如何使用动态图QL客户端进行简单变异的文档或示例。这是文件https://quarkus.io/guides/smallrye-graphql-client. {0}..{4} 是可变占位符。有人知道如何使用DynamicGraphlQlClient执行这个查询吗? 谢谢

  • 我正在尝试向使用Apollo的GraphQL服务器发送突变查询。 然而,我只看到实现这一点的唯一方法是使用突变组件。https://www.apollographql.com/docs/react/essentials/mutations/#the-突变成分 有没有一种简单的方法可以发送这样的突变? 从“graphql标记”导入gql;

  • 我刚刚开始在Apollo和Vue中使用GraphQL,所以这可能是一个“愚蠢”的问题,但我不知道怎么做。 如何在同一个视图中执行查询以获取一个对象,并使用变异更新它 假设我有一个简单的模式 和vue组件 现在我应该如何编写模板部分?我可以将产品对象链接到输入中的v模型吗? 谢谢你的帮助。

  • 我在GraphQL Java中定义了一个简单的模式来添加并获取。我的模式如下: 我创建了如下运行时连接: 查询工作正常,但变异不工作,并给出以下错误: 邮递员的突变是: 请帮帮我。它没有检测到突变类型,但查询工作绝对正常。我错过什么了吗?

  • 除了查询之外,两者的提取看起来完全相同: 第一个查询返回:  但第二个查询返回错误: 但我得到了同样的错误