#javascript #reactjs #graphql #react-apollo #apollo-client
#javascript #reactjs #graphql #реагировать-apollo #apollo-client
Вопрос:
У меня есть компонент более высокого порядка, и он принимает ввод переменной prop с именем «name». Внутри HOC я передаю «name» в качестве входных данных в useQuery.
Если значение имени изменяется, useQuery обращается к серверному API и получает новые результаты, но если значение остается тем же, сетевой вызов, выполняемый useQuery, не выполняется. HOC повторно отображается, но нет n / w вызова. Я получаю те же данные ответа, что и в первый раз (когда «имя» было обновлено). Я также пробовал политику выборки «без кэша» и «только для сети», но безуспешно. Пожалуйста, помогите. Я не могу найти какое-либо решение в Интернете. Спасибо!
Комментарии:
1. показать подробности? код?
Ответ №1:
Это потому, что Apollo кэширует эти данные. Я считаю, что вам нужно перейти к no-cache
«нет кэша». https://www.apollographql.com/docs/react/caching/advanced-topics /
в противном случае вы ищете повторную выборку, которую вы можете вызвать по требованию
Комментарии:
1. Я попробовал политику как «без кэша» (извините за опечатку, я обновил вопрос). useQuery не выполняет новый сетевой запрос, пока переменная не изменится. Даже если я остановлю сервер, я увижу данные без изменений для той же входной переменной.
2. @AmanDeepSharma Я думаю, вам следует добавить свой пользовательский хук, весь ваш компонент, если это возможно
3. Я не понял, должен быть способ вызвать useQuery (n / w вызов), даже если входные переменные не изменились.
4. Вы ищете повторную выборку.
const { refetch } = useQuery(QUERY, {variables: {...}})