Аполлон не пересылает запрос на сервер - PullRequest
0 голосов
/ 24 декабря 2018

Я создаю приложение на платформе api с конечной точкой graphql.На стороне клиента я управляю запросами и мутациями с помощью клиента apollo следующим образом:запрос работает нормально, проблема в том, что я не могу перезагрузить таблицу результатов.Когда я пересылаю тот же запрос с теми же параметрами, конечная точка graphql никогда не запрашивается.Мне нужно изменить сортировку таблицы, но как только я достигну всех комбинаций, я не могу перезагрузить таблицу снова.

Я попытался ввести случайный параметр в запросе, но получил ошибку отсервер (очевидно).

Есть ли способ повторно отправить тот же запрос и сделать что-то вроде перезагрузки таблицы.

Заранее спасибо!

1 Ответ

0 голосов
/ 24 декабря 2018

Клиент Apollo может разрешить конкретный запрос, либо загрузив его с сервера, либо из кэша.Точное поведение определяется fetchPolicy, который можно указать при вызове client.query.Из документов:

Политика выборки - это опция, которая позволяет вам указать, как вы хотите, чтобы ваш компонент взаимодействовал с кешем данных Apollo.По умолчанию ваш компонент сначала попытается прочитать данные из кэша, а если полные данные для вашего запроса находятся в кэше, то Apollo просто возвращает данные из кэша.Если полные данные для вашего запроса не находятся в кэше, то Apollo выполнит ваш запрос, используя ваш сетевой интерфейс.Изменяя этот параметр, вы можете изменить это поведение.

Поскольку политика по умолчанию - cache-first, и вы уже получили запрос один раз, последующие вызовы client.query вернут кэшированный результат.Чтобы обойти кеш, выберите другую политику, например network-only:

client.query({
  query: organismoQueries.SEARCH_ITEMS_QUERY(options),
  fetchPolicy: 'network-only',
})

Подробнее о опции fetchPolicy можно прочитать в документации .

...