【问题标题】:How to make a graphql mutation without parameters? (Vue Apollo)如何在没有参数的情况下进行graphql突变? (Vue 阿波罗)
【发布时间】:2020-05-19 16:56:48
【问题描述】:

我有一个 vue 应用程序,我在其中切换侧边栏菜单的宽度。我的计划是在本地 apollo 缓存中有一个 UI 对象,我可以在其中跟踪各种 UI 状态(例如侧边栏打开与关闭)。我有一个查询来检查侧边栏的状态和一个更新它的突变。但是由于某种原因,突变似乎需要我给它参数($id:ID),即使我在使用它时实际上并没有将任何东西传递给突变。当我不使用任何参数时,我应该如何编写突变?还是需要一个参数?尝试在下面删除参数和相应的错误消息。

像这样从两者中删除参数(尝试#1):

结果:

像这样删除括号(尝试#2):

结果:

【问题讨论】:

  • “似乎要求我给它参数”...意思是当你不这样做时,你会得到一个错误?或者看到一些意想不到的行为?您应该在问题中包含您看到的任何错误以及尽可能详细的信息。
  • @DanielRearden 更新了帖子以包含错误。从“toggleSidebarMutation”中删除参数时会发生这种情况
  • 也去掉括号....mutation { toggle...

标签: vue.js graphql apollo vue-apollo


【解决方案1】:

查询不带任何参数的字段时,应省略括号。换句话说,你会做

toggleSidebar

而不是

toggleSidebar()

后者在 GraphQL 中不是有效的语法。

【讨论】:

  • 我仍然收到“错误:网络错误:无法解构未定义”的错误,使用空参数括号的解析器是否存在问题?
  • 没关系,只需将解析器中的参数更新为空参数对象的名称,而不是我之前拥有的空解构对象。
猜你喜欢
  • 2017-10-15
  • 2019-04-02
  • 2017-03-23
  • 2019-02-20
  • 2019-12-09
  • 2018-05-27
  • 2021-01-24
  • 2020-07-26
  • 2019-05-02
相关资源
最近更新 更多