Я использую 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. Я не могу использовать крючки там. Должен ли я использовать избыточный для этого конкретного случая? Заранее спасибо.