Есть ли способ проверить, кэшируются ли данные в Apollo, прежде чем пытаться вызвать кеш? - PullRequest
0 голосов
/ 22 апреля 2020

Мне нужно выяснить, есть ли у Apollo кэшированные данные, прежде чем пытаться вызвать запрос для этих данных из кэша.

Этот код выдает ошибку "Invariant Violation: Can't find field ...... on object", если мы еще не вызвали USER_QUERY. Однако у меня нет способа проверить, звонили ли мы когда-либо.

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

Моя проблема в том, что я не знаю, как проверить, кэшировали ли мы данные или нет, прежде чем вызывать какой-либо кеш ,

1 Ответ

0 голосов
/ 23 апреля 2020

вы можете обернуть часть client.readQuery с помощью try catch, как подсказывает здесь и здесь ;)

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