我正在使用带有钩子+ 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吗? 预先感谢。