Apollo React - `useMutation` в настройке ApolloClient? - PullRequest
0 голосов
/ 02 февраля 2020

У меня интересная ситуация.

Я хочу инициировать запрос refre sh token, ИСПОЛЬЗУЯ сам Apollo (иначе называемый мутацией)

Любая идея, как добиться чего-то подобного ?

export default new ApolloClient({
  link: ApolloLink.from([
    onError(({ graphQLErrors, networkError, operation, forward }) => {
      // useMutation(REFRESH_ACCESS_TOKEN)
    }),
  ]),

  new HttpLink({...}),
})

В основном я просто пытаюсь useMutation(REFRESH_ACCESS_TOKEN) внутри onError при создании нового экземпляра ApolloClient.

Проблема: Invalid hook call. Hooks can only be called inside of the body of a function component.

Спасибо.

1 Ответ

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

Вы не можете использовать ловушку вне функционального компонента React. Вы можете использовать клиент напрямую для создания запросов и мутаций - просто имейте в виду, что любые запросы, выполняемые таким образом, не будут наблюдаемы (то есть не будут обновляться при изменении кэша).

const client = new ApolloClient({
  link: ApolloLink.from([
    onError(({ graphQLErrors, networkError, operation, forward }) => {
      client.mutate({ mutation, variables })
        .then(({ data }) => {
          console.log(data)
        })
        .catch((error) => {
          console.log(error)
        })
    }),
    new HttpLink({...}),
  ]),
})

export default client
...