Я пытаюсь вызвать обратный вызов после того, как я выполню повторное получение для watchQuery.
Когда я вызываю команду reetch, если возвращенные данные совпадают, мой обратный вызов подписки не срабатывает, однако это отлично работает, когда данные отличаются.
Я предполагаю, что это связано с кэшированием, но изменение политики кэширования не помогает.
Что я могу сделать, чтобы выполнить некоторый код после повторного поиска, даже если данные остались прежними?
Текущая реализация: я использую React Apollo Client для создания WatchQuery, подобного этому:
apolloClient.watchQuery({ query, variables, errorPolicy: 'all' });
Подписка на запрос работает правильно, когда я вызываю команду refetch позже, если возвращаемые данные отличаются от текущего результата:
query.subscribe(console.log);
// later I call refetch with new vars, a search term in this case
query.refetch(newVariables);
Если набор данных, возвращаемый из запроса, идентичен (например, из-за того же результата поиска), то метод подписки не вызывается.
Изменение fetchPolicy
для запроса, похоже, не оказывает положительного влияния.
Что я должен попробовать дальше? Как я могу вызвать что-то после повторного поиска, даже если возвращенные данные совпадают?
Варианты комплектации:
(я попытался обновить в надежде, что была исправлена ошибка, но она не оказала влияния)
"apollo-client": "^2.5.1",
"react-apollo": "^2.5.5",