我将InMemoryCache用于JavaScript中的Apollo GraphQL。
我有一个关于缓存时规范化如何工作的问题。我正在实现一种标准的列表/详细信息模式以显示客户列表,然后点击其中一个以显示该客户的详细信息。
列表GraphQL查询获取一些基本的客户信息,但是详细查询获取更多的信息。
两个查询都包括__typename
和id
。
通过阅读文档,我期望Apollo标准化结果的方式,当我对fetchPolicy做“ {-and-network””的watchQuery
时,它应该返回部分填充的结果(从列表中缓存)查询),然后再返回完全填充的结果(从服务器返回的详细信息查询中)。
但是,我看不到这种情况。只有在我已经获取了这个确切的详细查询之后,才会为详细查询填充缓存。
那很好,但是我希望它返回从列表查询标准化的部分缓存结果。
我对Apollo的理解是否正确,应该返回部分归一化的缓存结果?还是我只是误解了Apollo缓存的工作原理?
谢谢