有没有办法在尝试调用缓存之前检查Apollo是否已缓存数据?

时间:2020-04-22 18:19:00

标签: graphql apollo react-apollo apollo-client

在尝试从缓存中查询该数据之前,我需要确定Apollo是否已缓存数据。

如果我们尚未调用USER_QUERY,则此代码将引发"Invariant Violation: Can't find field ...... on object"错误。但是我没有办法检查我们是否曾经打电话过。

const cachedData = client.readQuery({
   query: USER_QUERY,
   variables: queryVariables,
});

我的问题是,在调用任何缓存之前,我不知道如何检查是否缓存了数据。

1 个答案:

答案 0 :(得分:1)

您可以使用herehere来尝试尝试捕获client.readQuery部分;)

try {
  const cachedData = client.readQuery({
     query: USER_QUERY,
     variables: queryVariables,
  });
} catch(e) {
  // maybe you can safely swallow the error
}