如何通过Apollo GraphQL订阅避免过度获取

时间:2019-01-08 00:29:44

标签: reactjs graphql apollo graphql-subscriptions

在GraphQL Subscriptions集成到react项目中的过程中,我遇到了意外的行为,当从订阅中获得更新时,该行为使不确定的先前由Query加载的数据无法填充详细视图。经过大量研究(此处/ docs / issues / blogs / apollo源代码),明显的原因是查询和订阅的请求字段的“形状”必须匹配。

在我的情况下(当然,这确实是一种普遍用法),填充详细视图的查询具有许多未更改的字段,并且订阅仅返回相关的字段。 IMO,这种方法应该是什么,我的问题是:

如何避免过度提取apollo gql订阅,从而能够将更新的(和相关的)订阅字段与先前的查询结果合并?

更多背景: 我使用的是Subscription组件,还尝试了subscribeToMore,但对于这两者,apollo都会在我无法自行管理更新之前更新商店,这导致未定义。使用阿波罗工具,我看到缓存的对象(按type + id)已成功合并,ROOT_QUERY.[name_of_the_query]

中出了问题

0 个答案:

没有答案