reactjs - Apollo GraphQL 本地和全局错误处理

标签 reactjs error-handling graphql apollo react-apollo

我正在使用 Apollo 与 React 编写的 Web 应用程序中的 GraphQL 服务器进行交互。我正在尝试在应用程序中实现错误处理并依赖 apollo-link-error为此。

现在,我需要处理两类错误:

  1. 可以在执行 Apollo 查询或突变的组件中本地处理的错误,即我需要在其上显示上下文错误信息的无效表单字段
  2. 可以全局处理的错误,例如通过在页面某处显示错误详细信息的 Toast 通知

显然,一旦错误在本地处理,我就需要在全局处理它,因为在表单字段旁边显示错误消息没有多大意义 通过 toast 消息的一般错误。

我在尝试实现此功能时遇到的第一个绊脚石是全局错误处理逻辑本地错误处理逻辑之前触发,这使我无法在本地拦截错误然后查找一种防止全局逻辑启动的方法。

我创建了codesandbox示例,它以最简单的方式设置了ApolloClient,使用http和错误链接,并使用react-apollo Query 组件查询不存在的资源,生成错误。

我正在 Query 组件的 onError 回调(本地错误处理)和 apollo-link-error 中处理错误 处理程序(全局错误处理),并将错误打印到控制台。

console output

它表明全局错误处理逻辑在本地错误处理之前启动。我需要它是相反的。

Edit apollo error handling

最佳答案

我发布了一个名为 react-apollo-network-status 的库它正好处理这个用例。如果对您有用,请告诉我!

本地处理某些错误的选择加入/退出行为是通过在操作上设置上下文变量来实现的,该变量可以在错误链接中读取。

关于reactjs - Apollo GraphQL 本地和全局错误处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55088628/

相关文章:

reactjs - 如何在 ReactJS webapp 中渲染格式化文本?

javascript - 从 setTimeout 中调用 React 组件方法

javascript - 用户字符串输入如何在React JS功能组件中显示为div中的背景颜色

reactjs - React、Redux 和不可变

python - 我收到 "[errno 22] Invalid argument: ' test.txt\r'

amazon-web-services - 用于 lambda 函数中 api 键的 aws appsync 环境变量

c# - 将 web api 与 graphql 结合使用的最佳实践

css - CSS验证程序错误=值错误: background 100% is not a color-stop value )

php - 在php中上传文件时出错

graphql - 如何在我的 GraphQL 模式中实现一对多和多对多关系?