我一直在尝试让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在这里也提供了很多帮助,以便更好地了解缓存中的数据结构。