问题标签 [graphql-mutation]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1034 浏览

reactjs - 如何使用 React.js 进行突变?

我正在尝试使用 graphql 和 react.js 进行一些突变,但我遇到了问题。确实,我收到了以下消息:

ESLint: React Hook "useMutation" is called in function "onSubmit" that is neither a React function component nor a custom React Hook function. React component names must start with an uppercase letter.(react-hooks/rules-of-hooks)

但是当我单击以验证表单时我需要进行突变,为此我需要函数“onSUbmit”

这是我的代码:

请问你能帮帮我吗 ?

非常感谢 !

0 投票
0 回答
396 浏览

reactjs - UseMutation 和 RefetchQueries:避免多次调用 react-apollo 的 api

在使用 RefetchQueries 进行变异时,我在页面中遇到了一些问题。

我有一个带有复选框的项目列表

ItemList(父组件),ToolBar(子组件)

在子组件中,我有一个删除按钮,可以在从项目列表中选择项目后单击该按钮。我通过道具将选定的项目传递给子组件。

单击删除按钮时,它应该调用getTransactions查询。根据结果​​,如果有任何交易可用,我必须显示模式并单击“确定”我必须删除这些项目。

在删除多个项目时,我必须检查所选项目是否有可用的交易。

现在删除工作正常,但突变 api 调用多次,查询 api 调用多次。我无法弄清楚。

如果我更改 if(data) 中的 if else 语句,则会给出错误cannot update during state transition

请帮助实现目标。

0 投票
1 回答
454 浏览

graphql - 使用 Graphql 和 Amplify/AppSync 基于先前值的突变

我想指出我是 Graphql 的新手,我可能遗漏了一些明显的东西。我想做一些类似于商店订单系统的事情。当客户买东西时,会做两件事:(1)钱从他的钱包里减少,(2)订单被添加到他的订单历史中。到目前为止,我将钱包和订单历史建模为 GraphQL 模式中的两种类型。

第 1 点。理想情况下,我想进行交易。如果钱包更新或订单创建失败,整体应该失败。据我了解,如this answer中所指出的那样,要归档它,只需有一个同时进行更新的突变就足够了。那么,我是否正确理解了它,并且这样的事情就像一个事务(在失败的情况下回滚)?

Point 2. 其次,我想存储每个客户购买的平均数量。为此,我正在考虑使用增量平均函数(这个),所以我正在考虑存储当前平均值并使用公式对其进行更新。但是,我不明白如何“安全”地做到这一点(没有可能的竞争条件)。据我了解,GraphQL 中有一个原子增量选项,仅此而已。所以我想我可以存储 sum_of_all_the_items 和 number_of_purchases 以计算每个请求的划分。这可能很好,即使它看起来不是最干净的解决方案。特别是因为这些数字将无限增长并最终(即使这是一个非常不幸的情况)溢出。

谢谢

0 投票
1 回答
304 浏览

mongodb - GraphQL 嵌套文档在突变时返回 null

我正在将 MongoDB 与 Mongoose 和 GraphQL 一起用于类项目。我遇到了一个问题,即 GraphQL 在嵌套文档引用中的字段上返回 null(引用用户模式的 postedBy)。我希望这些字段由引用的对象数据填充,但只返回 ID。

模型

类型定义

解析器

我能够成功查询帖子并使用用户的_id、用户名和图像(url)填充引用的字段。当我运行突变时,用户名和图像返回 null。

这是我的突变:

这是它得到的响应:

我究竟做错了什么?

0 投票
1 回答
105 浏览

flutter - 在操场上运行的 Graphql_flutter 突变在运行设备/模拟器上不起作用

在我的项目开发过程中,我正在使用带有 graphql 的颤振,为了测试目的,在操场上尝试了突变并通过了测试,但是在设备和模拟器上得到 5xx 的错误响应,我知道这是“服务器端”错误,但测试了相同的突变我们的网页,它也在工作。除了颤振,我正在使用以下软件包:

  • 等价的:^1.2.5
  • gql: ^0.12.4
  • 图ql:^4.0.0
  • graphql_flutter:^4.0.1
  • json_annotation: ^3.1.1
  • 元:^1.3.0
  • 阿尔忒弥斯:^6.18.4
  • build_runner:^1.11.1
  • json_serializable: ^3.5.1

到目前为止,在这个项目中,我使用以下文件语法成功运行了近 10 个突变:

  • 我的项目/
    • 图ql/
      • 查询/
        • register.graphql -> 运行良好
        • createOffer.graphql -> 出现 500 错误
      • 架构.graphql
    • 库/
      • 楷模/
        • ...在这里生成模型..
      • 意见/
        • 注册.dart
        • createOffer.dart

注册.graphql

注册.dart

以下是突变得到 500 错误。

createOffer.graphql

以下是在 Playground 上用于 createOffer 的硬代码:

和回应

为了检查graphql验证是否有效,我在开始时间/结束时间的日期时间上犯了错误并得到这个:

这意味着我发送的所有字段都是正确的,我想。也许请求的字段类型正在接受我的有效输入类型,但在工作/解析它们时导致错误,我不知道,我为此苦苦挣扎了将近一周,你可以看到两个硬代码(颤振/游乐场)是相同的. 我的文本字段和其他输入已准备好,但我首先无法运行硬编码:/ 顺便说一句,这不是过期的令牌,因为我得到了未经授权的操作错误。

0 投票
1 回答
269 浏览

reactjs - Error: Identifier already been declared. How can it be resolved?

I am using Grapgql for querying in React application. I have a query & mutation, both in the same component. Because of this, the variables defined error & data is repeated. Therefore it is showing an error in React as Identifiers already declared

Below is the code for the component:

How can it be overcome?

0 投票
1 回答
250 浏览

javascript - 在 Google App Script 中使用 GraphQL 执行突变

上面的脚本是 GraphQL 中的一个示例突变请求。具体来说,这是与 Wave Accounting API 交互以为特定业务创建客户,令牌和业务 ID 出于显而易见的原因被审查,客户只是一个占位符。

该脚本在 Wave API Playground 上完美运行,甚至在 Apollo 等第三方平台上也能完美运行。但是,当插入 Google App Script 时,我收到错误消息:

POST 正文丢失。你忘记使用 body-parser 中间件了吗?

我如何能够将 body-parser 中间件集成到我的脚本中?我假设它仅在 GAS 上不起作用,因为我提到的其他两个服务具有可以与 Wave API 服务器交互的 body-parser 中间件。如果不是这样,我将如何在 GAS 中提出突变请求?

查询请求工作得很好,突变是唯一的问题。

0 投票
0 回答
100 浏览

spring-boot - GraphQL-java Mutation 输入对象

我正在尝试进行这样的突变: Mutation createCall(cart, location, requestToUser: String, requestToRestaurant: String, timeLimit: Int) : Boolean

并在购物车和位置客户端提供有关购物车和位置的信息,如下所示: *cart { restaurant : { id, } Menus : [ { menuId count options : [ { category items : [ { Price Content } ] } ] } ] }

位置{纬度:双经度:双地址:字符串}

我应该如何在 Mutation createCall 中为购物车和位置定义输入类型?也许我可以解决位置问题,但是对于与其他表格相关的购物车,我不知道如何保存这些信息。你有什么主意吗?请帮我..

0 投票
1 回答
1254 浏览

reactjs - React Apollo 客户端多个突变

我有一个包含记录列表的数据表样式表,需要更新它们的值。我想运行一个提交,并在我的 GraphQL 中将一组记录作为单个参数发送给集合查询。它们实际上是 MongoDB 文档。如标题所示,我将 React 与 Apollo 客户端一起使用。先感谢您 :)

更多详情如下

所以我在服务器端有这个突变,它适用于 Playground。然而,它在 Apollo 客户端出现错误。

Apollo 客户端工具将变异变量正确显示为

工具显示

但是在 Apollo 客户端工具中,当我尝试运行查询时,它显示为 {“input”:[{“id”:“60c6b9ca277c815ec200992a”,“week1”:5,“week2”:2,“week3”:0,“ week4”:9},{“id”:“60c6ba80277c815ec200992e”,“week1”:0,“week2”:5,“week3”:0,“week4”:0}]}

我想这很好。这应该可以工作,因为它与我在 Playground 中运行的相同,但不是!

我试图运行 JSON.parse(myVariables) 但没有帮助。阿波罗似乎改变了它。最终结果查询没有运行。它返回 400 响应,仅此而已。如果我需要一个接口,我没有使用 TS,还不知道如何在 React JS 中实现。

再次感谢

0 投票
1 回答
323 浏览

typescript - Keystone 下一个自定义 graphql 突变和外部前端

嘿,我正在尝试通过“外部”反应、next 和 apollo 前端让自定义突变在 keystone-next 中工作,但是从前端调用突变时遇到问题,但从 Keystone api 调用时却没有探险家。突变其实很简单。

架构扩展:

解析器功能(不同的文件):

有效的原始 http 请求正文是:

而原始 http 前端生成的请求正文如下所示:

当我使用完全相同的标头从 Postman 运行这些请求时,第一个仍然有效,而第二个仍然无效(没有身份验证等)。400 bad request response 中返回的错误如下:

我错过了什么?