如何在没有参数的情况下进行graphql突变? (Vue 阿波罗)
Posted
技术标签:
【中文标题】如何在没有参数的情况下进行graphql突变? (Vue 阿波罗)【英文标题】:How to make a graphql mutation without parameters? (Vue Apollo) 【发布时间】:2020-05-19 16:56:48 【问题描述】:我有一个 vue 应用程序,我在其中切换侧边栏菜单的宽度。我的计划是在本地 apollo 缓存中有一个 UI 对象,我可以在其中跟踪各种 UI 状态(例如侧边栏打开与关闭)。我有一个查询来检查侧边栏的状态和一个更新它的突变。但是由于某种原因,突变似乎需要我给它参数($id:ID),即使我在使用它时实际上并没有将任何东西传递给突变。当我不使用任何参数时,我应该如何编写突变?还是需要一个参数?尝试在下面删除参数和相应的错误消息。
像这样从两者中删除参数(尝试#1):
结果:
像这样删除括号(尝试#2):
结果:
【问题讨论】:
“似乎要求我给它参数”...意思是当你不这样做时,你会得到一个错误?或者看到一些意想不到的行为?您应该在问题中包含您看到的任何错误以及尽可能详细的信息。 @DanielRearden 更新了帖子以包含错误。从“toggleSidebarMutation”中删除参数时会发生这种情况 也去掉括号....mutation toggle...
【参考方案1】:
查询不带任何参数的字段时,应省略括号。换句话说,你会做
toggleSidebar
而不是
toggleSidebar()
后者在 GraphQL 中不是有效的语法。
【讨论】:
我仍然收到“错误:网络错误:无法解构未定义”的错误,使用空参数括号的解析器是否存在问题? 没关系,只需将解析器中的参数更新为空参数对象的名称,而不是我之前拥有的空解构对象。以上是关于如何在没有参数的情况下进行graphql突变? (Vue 阿波罗)的主要内容,如果未能解决你的问题,请参考以下文章