Использование React Navigation с useQuery Apollo - PullRequest
1 голос
/ 09 июля 2020

У меня есть экран, на котором я получаю данные от Хасуры. Я использую что-то вроде этого:

// screen1.js
const {data} = useQuery(MY_QUERY)

В screen1.js у меня есть кнопка, которая переходит к screen2.js. И в screen2.js у меня есть некоторая мутация, которая изменяет данные, полученные в screen1.js. Когда я изменяю эти данные и выполняю мутацию, я возвращаюсь к screen1.js. Я хочу, чтобы данные в screen1.js были обновлены соответствующим образом.

Я пробовал несколько подобных решений (как предлагается в docs ):

const {data} = useQuery(MY_QUERY, {fetchPolicy: "network-only", pollInterval: 500})

Но это не работает. Я не могу сделать свой запрос подпиской, потому что мой запрос вызывает настраиваемое действие от Хасуры, и я считаю, что они поддерживают только запросы и мутации.

Я думаю, что решением было бы повторно отобразить screen1.js, когда я перейдите туда, но я не знаю, оптимальное ли это решение.

1 Ответ

0 голосов
/ 14 июля 2020

Попробуйте использовать это в качестве параметров по умолчанию:

const defaultOptions = {
  watchQuery: {
    fetchPolicy: 'no-cache',
    errorPolicy: 'ignore'
  },
  query: {
    fetchPolicy: 'no-cache',
    errorPolicy: 'all'
  }
}

Его следует использовать примерно так, в зависимости от того, как вы настраиваете Apollo:

    this.client = new ApolloClient({
      link: concat(authMiddleware, link),
      cache: new InMemoryCache(),
      defaultOptions
    })
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...