Как вручную вызвать запрос (например, по клику), используя Vue Apollo Composible? - PullRequest
0 голосов
/ 10 февраля 2020

Поведение по умолчанию заключается в том, что useQuery загружается сразу с настройкой компонента.

Я хочу инициировать запрос для некоторого события, например щелчка.

Как это сделать?

1 Ответ

1 голос
/ 25 февраля 2020

Я тоже много искал, но это написано в их документации vue apollo v4e

import { useQuery, useResult } from '@vue/apollo-composable'
import gql from 'graphql-tag'

export default {
  setup () {
    const { result, loading, error, refetch } = useQuery(<query>)

    const users = useResult(result)

    return {
      users,
      loading,
      error,
      refetch,
    }
  },
}
</script>

<template>
  <div v-if="loading">Loading...</div>

  <div v-else-if="error">Error: {{ error.message }}</div>

  <ul v-else-if="users">
    <li v-for="user of users" :key="user.id">
      {{ user.firstname }} {{ user.lastname }}
    </li>

    <button @click="refetch()">Refresh</button>
  </ul>
</template>

просто добавьте "refetch" в строку useQuery и вызовите это из события нажатия кнопки.

РЕДАКТИРОВАТЬ: Вы можете отключить запрос, поэтому он не будет запускаться при настройке компонента, а при нажатии кнопки вы можете включить запрос и повторно выполнить его.

С наилучшими пожеланиями

...