4

我一直在尝试让 Vue + Apollo 与我的 GraphQL 服务器一起工作,除了订阅部分之外,它就像一个魅力。

我在用着

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

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

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

如何将新subscriptionData的组件数据对象放入模板中以访问它?

解决方案
原来的问题是第一个订阅在初始查询结果在缓存中可用之前返回。
检查previous作为ROOT_QUERY数据存在的元素解决了这个问题。
Apollo-Devtools 在这里也有助于更好地理解缓存中的数据结构。

4

0 回答 0