首页 > 解决方案 > 如何在 Apollo 客户端缓存中查询特定类型的所有项目?

问题描述

是否可以在 apollo 客户端缓存中查询特定类型的所有项目?我们的团队正在尝试采用 Apollo 缓存来集中状态,这个问题就出现了。我们已经实现了本教程的几乎所有部分,但我们仍然不确定这个问题。

假设我们这个查询,someCollectionQuery

someCollectionQuery {
  edges: {
    node: {
      factory {
        _id
        factoryName
      }
    }
  }
}

根据有关readQuery的文档,我们现在可以通过以下方式获取缓存中的所有工厂:

client.readQuery({
  query: someCollectionQuery,
});

我们可以对数据做一些简单的迭代,只提取工厂。

但这需要我们使用someCollectionQuery. 如果应用程序中的其他查询也返回了工厂怎么办?是否有可能创建一个readQuery,它返回缓存中的所有工厂 - 无论是什么特定查询首先导致工厂位于缓存中?就像是:

// How would you achieve something like this?
const allFactories = client.readByType('factory')

标签: apolloapollo-client

解决方案


推荐阅读