首页 > 解决方案 > 如何使用 react-hooks 在一个地方处理 apollo 错误?

问题描述

我正在使用带有钩子 + GraphQL 的 React。

我的 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) }
})

这看起来像过度编码,因为我经常这样做。但我无法弄清楚如何在从“apollo-link-error”导入的 onError() 函数中仅调度一次 AppolloClient 中的错误。我不能在那里使用钩子。我应该在这种特殊情况下使用 redux 吗?提前致谢。

标签: graphqlreact-hooksreact-apolloapollo-client

解决方案


推荐阅读