如何查询InMemoryCache中的所有实体?

时间:2018-01-15 14:30:01

标签: apollo react-apollo apollo-client

我正在尝试从我的apollo本地缓存(InMemoryCache)中查询所有实体,但没有成功。

以下是我的进展方式。

query EntityList($limit: Int!, $offset: Int!) {
  entities(
    limit: $limit,
    offset: $offset
  ) {
    __typename
    EntityId
  }
}

有了这个查询:没问题。 但后来,我想查询缓存中的所有实体,没有任何参数。

query LocalEntityList {
  entities {
    EntityId
  }
}

这个简单的代码会触发错误 Can't find field entities on object (ROOT_QUERY)....

documentation site我知道我需要在cacheResolvers对象上使用InMemoryCache个选项。
但是没有传递id作为参数的例子。

1 个答案:

答案 0 :(得分:0)

我认为你想要的是一个@connection指令。这将允许您在没有limit / offset参数的情况下缓存实体查询。

query EntityList($limit: Int!, $offset: Int!) {
  entities (
    limit: $limit,
    offset: $offset
  ) @connection(key: "EntityList_entities") {
    __typename
    EntityId
  }
}

使用相同的连接进行连续调用应返回该密钥的所有实体。

query LocalEntityList {
  entities @connection(key: "EntityList_entities") {
    EntityId
  }
}