Как связать цепочки с помощью useQuery с помощью response-apollo-hooks - PullRequest
2 голосов
/ 24 апреля 2019

Я хотел бы выполнить 2 запроса с хуками, где второй запрос использует информацию, полученную в первом. Например:

const { data, error, loading } = useQuery(GET_DOGS);
const result2 = useQuery(GET_BREEDS, { variables: { dogId: data[0].id } });

Сейчас я делаю это, используя какое-то состояние и устанавливая параметр skip на втором хуке, однако я полагаю, что должно быть какое-то более простое решение, которое я мог бы пропустить?

1 Ответ

1 голос
/ 25 апреля 2019

Хуки не могут быть условными, поэтому вы не можете использовать оператор if или досрочный возврат, как мы сделали бы с компонентом Query.Хорошо это или плохо, но использование параметра skip - это простейшее решение:

const { data, error, loading } = useQuery(GET_DOGS);
const result2 = useQuery(GET_BREEDS, {
  skip: !data.dogs,
  variables: { dogId: data.dogs[0].id },
});

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

...