Изменение между несколькими запросами GraphQL в компоненте React - PullRequest
0 голосов
/ 06 января 2020

Я создаю приложение реагирования с React и GraphQL, в котором я хочу по умолчанию рандомизировать коктейли, но у меня есть опция поиска определенного коктейля c через поиск после нажатия кнопки. Следовательно мне нужны два разных запроса.

export default function Cocktails() {
    const [
        dataType,
        setDataType
    ] = useState('randomCocktail');

    const [
        queryType,
        setQueryType
    ] = useState(RANDOM_COCKTAIL_QUERY);

    const { loading, error, data, refetch } = useQuery(queryType);

    if (loading) return 'Loading...';
    if (error) return `Error! ${error}`;

    return (...)

Если я пытаюсь добавить второй (ленивый) запрос под заданным по умолчанию параметром useQuery, программа вылетает, поскольку загрузка и данные уже назначены. («Ошибка разбора: идентификатор« loading »уже объявлен»)

const { loading, error, data, refetch } = useQuery(queryType);
const { loading, data } = useLazyQuery(ONE_COCKTAIL_BY_NAME_QUERY);

Интересно, как лучше переключаться между загрузкой данных из разных запросов. Любая помощь будет принята с благодарностью!

...