Vue / Apollo:如何更新新的订阅消息?

时间:2018-06-21 08:37:37

标签: vue.js graphql apollo-client graphql-subscriptions vue-apollo

我一直在尝试让Vue + Apollo与我的GraphQL服务器一起使用,除了订阅部分之外,它的工作原理很吸引人。

我正在使用

apollo: {
  foo: {
    query: ...,
    subscribeToMore: {
      document: ...,
      updateQuery: (previous, { subscriptionData }) => {
         ...
      }

如示例中所示(例如here)。
新的subscriptionData到货了,但我不知道如何将其与组件data.foo合并。

所有示例都使用previous.foo,但我的previous{Symbol(id): "ROOT_QUERY"}
似乎我在这里缺少了可能简单但至关重要的理解。

如何将新的subscriptionData放入元件数据对象以在模板中进行访问?

解决方案
原来的问题是,在高速缓存中可获得初始查询结果之前,第一个订阅将返回。
previous用作ROOT_QUERY元素是否存在数据解决了这个问题。
Apollo-Devtools在这里也提供了很多帮助,以便更好地了解缓存中的数据结构。

0 个答案:

没有答案