Почему моя подписка на WatchQuery не срабатывает, когда возвращается тот же набор данных? - PullRequest
2 голосов
/ 26 июня 2019

Я пытаюсь вызвать обратный вызов после того, как я выполню повторное получение для 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",
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...