Как обрабатывать ошибки apollo в одном месте с помощью реакционных хуков? - PullRequest
0 голосов
/ 09 января 2020

Я использую React с перехватами + GraphQL.

Мой app.jsx:

import { onError } from 'apollo-link-error';
...
const httpLink = ...
const errorLink = onError(err => console.log(err))
const terminatingLink = split(...httpLink, errorLink)
const client = new ApolloClient({
    link: ApolloLink.from([terminatingLink])
    ...
})
<ApolloProvider client={client}>
    <ErrorProvider>
    </ErrorProvider>
</ApolloProvider>

Поставщик ошибок используется как общее состояние для ошибок, т. Е. Если ответ на мутацию плохой , В настоящее время я создаю обработчик onError для каждой (!) Мутации и запроса, например, так:

const [createTeam] = useMutation(createTeamQ, {
    onError: (err) => { dispatchError(err) }
})

Это похоже на перекодировку, поскольку я делаю это слишком часто. Но я не могу понять, как отправить ошибку в AppolloClient только один раз в функцию onError (), импортированную из apollo-link-error. Я не могу использовать крючки там. Должен ли я использовать избыточный для этого конкретного случая? Заранее спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...