Попытка вызвать useQuery после «если» в приложении React

#reactjs #graphql #apollo-client

#reactjs #graphql #apollo-клиент

Вопрос:

В моем приложении react я получаю gql после работы какой-либо функции и пытаюсь вызвать apollo hook следующим образом:

 ...
let data = {};
if(gqlQuery)
  data = useQuery(gqlQuery)
 

После этого приложение падает с

 Error: Should have a queue. This is likely a bug in React. Please file an issue.
▶ 3 stack frames were collapsed.
useBaseQuery
src/react/hooks/utils/useBaseQuery.ts:21
  18 |             Promise.resolve().then(forceUpdate);
  19 |         }
  20 |         else {
> 21 |             forceUpdate();
     | ^  22 |         }
  23 |     }
  24 | });
 

В чем проблема и как с ней справиться?
ps. Я не могу избежать «if (gqlQuery)»

Комментарии:

1. правило перехватов нарушено, не может быть вызвано условно… используйте опцию пропуска

Ответ №1:

Попробуйте использовать это!

 const { loading, error, data } = useQuery(YOUR_QUERY)
 

Ответ №2:

Я нашел ответ — useLazyQuery