Как обернуть крючок useQuery обещанием - PullRequest
0 голосов
/ 24 марта 2020

У меня есть запрос graphql и хук useQuery, которые возвращают много данных. Я начинаю загрузку нажатием кнопки и показываю, когда загрузка данных будет завершена. Можно ли использовать Promise для ожидания загрузки данных? Не могли бы вы написать это?

const GET_NAME= gql`
    query  {
        employee {
            id
            name
        }
    }
`;

...

function Form () {
...
    const { data } = useQuery(
        GET_NAME
    );

    const onClick = () => {

    ....
    return textInput.current!.value=data.employee.name;

1 Ответ

2 голосов
/ 24 марта 2020

Используйте деконструированные значения из getQuery

Вам не нужно добавлять обещание, которое обрабатывается внутри.

Пример из документации

<code>  const { loading, error, data } = useQuery(GET_DOGS);

  if (loading) return 'Loading...';  // whilst its loading this will retun
  if (error) return `Error! ${error.message}`; // if there's an error this will return

  return <pre>{data}
// если другой 2 неверны, у вас должны быть данные, это вернет

, поскольку вы можете видеть, что состояние загрузки уже находится внутри возврата. Как и ошибка. вы можете ответить на эти значения, ожидая возврата данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...