问题标签 [vue-apollo]
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.
javascript - 如何从 vue-apollo 中访问 this.$route?
我正在使用vue-apollo
and构建一个 GraphQL 查询graphql-tag
。
如果我硬编码我想要的 ID,它可以工作,但我想将当前路由 ID 作为变量传递给 Vue Apollo。
是否有效(硬编码 ID):
但是,我无法做到这一点:
不起作用(试图访问 this.$route 的 ID):
我得到错误:
未捕获的类型错误:无法读取未定义的属性“参数”
有没有办法做到这一点?
编辑:完整的脚本块,以便更容易看到发生了什么:
javascript - 在 Vue.js 中向用户显示 Apollo 突变错误?
我正在将Vue.js与Vue-Apollo一起使用,并启动 User 突变以登录用户。我正在使用 graph.cool 服务。
我有一个请求管道功能设置来捕获一些错误,例如无效的电子邮件。
当使用错误/无效输入发出请求时,我的错误catch()
会触发(如预期的那样),并且在网络选项卡中,我可以看到自定义错误消息的 JSON。但是,如果从 graph.cool 触发错误,我如何从 catch 中访问这些错误/响应?
例子:
对于无法识别的用户,我收到以下错误:
错误:GraphQL 错误:在新 ApolloError (eval at (app.js:956), :34:28) at eval (eval at (app.js:1353), :139:33) at
知道如何从内部显示响应中的错误catch()
吗?
我可以从字面上看到我想在网络选项卡上的响应中向用户显示的错误:
...但我不知道该怎么做。
非常感谢任何帮助!谢谢你。
vuejs2 - 如何在 vue-apollo 客户端中定义 GraphQL 输入类型
情况:
我使用laravel-graphql作为后端 GraphQL 服务,使用vue-apollo作为前端客户端。
在我的 Vue 组件中,我有一个 gql 查询,如下所示:(关系:A Song has more SongParts)
现在有一个突变,我想用它来更新给定的歌曲:
.. 并且在使用这种方式的 Vue 组件中:
但是,要更新 song_parts 数组,我需要定义一个自定义输入类型:
问题
我不知道在哪里定义这个输入类型。当我在 Chrome WebTools 中使用 GraphiQL 时,在突变之前定义它没有问题。我还找到了一些关于阿波罗服务器的信息,但我在客户端需要它。
所以基本上问题是关于改变数据列表。
vuejs2 - 在同一页面上使用具有不同查询的 vue-apollo 组件
我想使用 Apollo 制作一个包装器组件,它接收不同的 GraphQL 查询和 props 中的变量,查询 GraphQL 源并将响应传递给它的子组件。我想在具有不同查询的页面上使用此组件两次。
但我想我被困在某个点上。我最终让组件的两个实例都使用相同的输入:第一个下拉组件的查询属性正在页面上的所有下拉列表中使用。尽管它们有不同的范围,不同的关键字和项目,但页面上的所有下拉菜单都使用第一个下拉菜单的查询。
这是我的 DropdownSearch 组件。它将关键字从搜索栏组件传递到查询列表组件:
QueryList 组件,它使用 Apollo 进行查询并显示结果列表:
这就是我在页面上使用下拉搜索组件的方式:
我正在寻找解决方案。如果您能帮助我使我的组件正常工作,我将不胜感激。
javascript - 如何重新运行 Vue.js ApolloClient 中间件?
在我的main.js
我有一些代码来检查是否存在 localStorage 项目。如果有,它将Authorization
通过中间件向 ApolloClient 设置添加一个标头。
但是,如果稍后添加了 localStorage 项,则它不会出现在main.js
. 因此,需要进行整页刷新才能让它拾取/知道它的存在。
我怎样才能main.js
从一个方法中再次运行(如果这甚至是解决方案),比如一个让用户登录的组件?
这是我的main.js
:
希望你能理解我想要做什么?
谢谢
vue.js - GraphQL vue apollo 查询和变异同视图
我刚刚开始将 GraphQL 与 Apollo 和 Vue 一起使用,所以这可能是一个“愚蠢”的问题,但我不知道该怎么做。
如何在同一个视图中执行查询以获取一个对象并使用突变对其进行更新
假设我有一个简单的架构
还有一个vue组件
现在我应该如何编写模板部分?我可以将 Product 对象链接到 input 中的 v-model 吗?
谢谢你的帮助。
vue.js - Apollo-client - 错误:在对象 (ROOT_QUERY) 上找不到字段 allLinks({})
操作系统:Windows 10 Pro
浏览器:Opera 47.0.2631.71 (PGO)
apollo-client:1.9.2
subscriptions-transport-ws:0.6.0
vue:2.4.2
vue-apollo:2.1.0-rc.5
因此,我在尝试使用 graphcool 端点运行查询时遇到了上述错误。仅在尝试对新创建的链接项目进行投票时才会出现此问题。这里有什么问题?
完整的错误是:
询问:
代码:
graphql - 在 Apollo 中删除突变后如何重定向?
删除帖子后,我想更新缓存并重定向到帖子索引页面。
上面的方法有效,但由于我没有做optimisticResponse
,所以在索引页面显示的时间和缓存更新发生的时间之间会有一点延迟。我该如何解决这个问题?我试图做一个,optimisticResponse
但我不知道如何在不进行其他查询的情况下获取分页帖子列表。
pagination - 如何从 Apollo 的分页列表中删除项目?
我想知道如何删除分页列表中的项目,以便我始终显示相同数量的项目。我目前的方法不起作用(每次删除后列表变小):
node.js - 订阅 GraphQL Server 时出错
我对 GraphQl 相当陌生,我在这里遵循了 GraphQL NodeJS 后端教程:GraphQL Realtime Subscriptions。一切正常,我完成了教程。接下来,我在这里学习了带有 Apollo 前端的 VueJS 教程:Vue & Apollo Subscriptions。我选择使用我在第一个教程中创建的 GraphQL 服务器,而不是使用前端教程中使用的 GraphCool。这是我卡住的部分。如果我打电话
在 GraphiQL 客户端中,我确实得到了id
,url
并且description
当我在不同的浏览器选项卡中使用数据创建新链接时
data: Link: node: {id: "59ef0bbeef32bb05692ee4b4", url: "http://new-test-url2.com", description: "Test description2"}
(此订阅调用也在后端教程中进行)。但是当我打电话
我得到错误:
与数据data:{Link: {node: null}}
我只是找不到这个问题的答案。希望有人可以帮助我这个。这是我的代码:
架构/index.js
架构/resolvers.js: