问题标签 [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 投票
1 回答
1094 浏览

reactjs - react-apollo 突变组件将空字符串发送为 null

我将把这个问题简化为一个简单的例子。我有一个表格组件,它呈现一个带有查询数据的表格。我还有一个小表格,允许用户将数据输入到表格中。我遇到的问题是输入字段的默认值是空字符串。

示例输入字段:

假设状态将空字符串作为输入字段的默认值

还假设我想在我的表单中向数据库发送一个空字符串。我正在使用graphql以阿波罗的方式进行突变:

好的,这是一般情况。实际上,该表单包含 6 个字段。但问题是,当我向变量内的查询发送一个空字符串时,当它将查询发送到服务器时,它会将空字符串更改为一个null值,因此我最终会遇到此错误:

GraphQL 错误:SQLSTATE [23000]:违反完整性约束:1048 列“名称”不能为空

我已经使用graphiql测试了服务器,并且请求本身可以接受空字符串,但似乎突变组件或apollo在某处将我传递给graphql变量的空字符串转换为null。

我已经设法为这种情况制定了解决方法,但这绝对不是处理这个问题的正确方法。如果我能以某种方式让 apollo 实际发送空字符串而不是 null 它将解决问题。

感谢任何知道为什么我这样做的人

0 投票
1 回答
2487 浏览

graphql - 使用石墨烯中继创建订阅

我是 graphQL 石墨烯(python)的新手。我想知道是否可以使用石墨烯创建订阅根类型。谢谢

0 投票
0 回答
84 浏览

graphql - graphql 突变和沙发库

我开始使用带有 couchbase 的 graphQL,并且在运行突变时遇到了一个小问题,我正在做的是保存 2 个对象:

这是我的突变功能:

这些是我的模式

问题是,当我运行突变时,结果是凭证字段为空的用户对象,但是如果我在突变解析中添加超时,我会得到具有凭证对象的用户......插入函数类似于这个:

你有什么建议吗?

0 投票
2 回答
370 浏览

node.js - GraphQL 突变在一个请求中接受动态大小的数组作为 NodeJs 的输入

我想使用 NodeJS 在 GraphQL Mutation 中传递动态大小的 [{questionId1,value1},{questionId2,value2},{questionId3,value3}] 对象数组

如何使用给定的代码示例来做到这一点?

谢谢

0 投票
1 回答
363 浏览

react-apollo - 反应阿波罗突变和乐观更新

我正在使用HOC带有突变的 graphql 作为输入类型checkbox。我还为它添加了乐观的 UI 更新选项。选中该框将触发一个突变,value=true取消选中将触发一个突变value=false

但问题是快速点击会导致对服务器的多次突变调用,并且响应存在延迟。同时optimisticResponse更新完成它的工作并切换复选框。当服务器响应到达时,再次调用更新函数并切换复选框,导致 UI 出现故障。

让我总结一下我可以预期的流程

点击顺序:

UI 更新顺序:

有没有办法消除这些故障?

0 投票
1 回答
519 浏览

graphql - 用于添加朋友的 Graphql 架构

嗨,我想为朋友功能创建架构。登录用户可以向注册用户发送好友请求。我有 2 个表用户和关系,并且可以得到自己的朋友。它在 redux 中工作并与节点 mysql 作出反应。但我不知道如何在 GraphQL 中实现相同的目标。我现在使用 GraphQL cli 使用 GraphQL prisma

0 投票
3 回答
381 浏览

reactjs - 反应原生,在现有状态转换期间无法更新

我有一个反应原生组件。我得到了错误:

代码:

CREATE_CUSTOMER_ACCOUNT 是 graphql:

更多细节在这里

谁在使用handleSubmit?

当按下时,表单中有一个按钮调用handleSubmit。

这个语法正确 onPress={handleSubmit} 吗?

导出默认 PrimaryButton;

更新 1: 如果我删除customerCreate(来自 graphql),错误就会消失。这意味着异步等待实际上是正确的,但我需要 customerCreate

0 投票
0 回答
554 浏览

graphql - 嵌套的 Graphql 输入对象类型

我正在尝试在另一个 graphl 输入对象类型中添加 graphql 输入对象类型。

从长远来看,我碰巧有相互嵌套的复杂输入类型,而不是普通的 GraphqlJSON 对象(我真的想避免)

它给出了以下错误

0 投票
0 回答
164 浏览

graphql - graphql 突变的最佳实践是什么?(.NET 实现)

我目前正在学习 graphql,我不确定我是否正确理解了突变应该如何工作,尤其是与订阅结合使用时。

我有一个包含客户详细信息的页面,其中包括他从我们公司购买的软件产品的描述和列表。在界面中,有一个用于描述的编辑按钮,一个用于将新软件产品添加到客户端列表的加号按钮以及用于每个产品的减号按钮以启用删除它们。
我目前添加了一个突变,它以客户端的 id 和一个字符串 (newDescription) 作为参数并更新客户端的描述。这是正确的还是我应该拥有 id 和 ClientInputType (包含字段描述)并将它们作为参数传递?更重要的是,如果我使用 ClientInputType 并且它包含软件产品的描述和列表,有没有一种方法可以一次只更新一个字段(为了使用相同的突变更新客户端,但只更改必填字段取决于在界面中按下了哪个按钮)?

public Mutation(IClientRepository clientRepository) { this.FieldAsync<ClientType>( "updateClient", arguments: new QueryArguments( new QueryArgument<NonNullGraphType<IntGraphType>> { Name = "id" }, new QueryArgument<StringGraphType> { Name = "newDescription" } ), resolve: async ctx => {...} }

换句话说,我可以让 graphql 以任何方式知道我只想更新 ClientInputType 中的一个字段并且它应该忽略其他字段吗?突变应该返回什么?我正在返回更新的客户端。

0 投票
1 回答
1402 浏览

graphql - How to send byte array (Blob) to GraphQL mutation

We have a GraphQL mutation with a byte array (Blob) field. How can I use tools like Insomnia or GraphQL playground to send byte array data to test the API?