javascript - Apollo 客户端( react ): Handling unexpected errors

标签 javascript reactjs apollo react-apollo apollo-client

我一直在查看 Apollo 文档,但没有看到有关如何在 Apollo 客户端中处理服务器错误的信息。

例如,假设服务器:

  • 超时
  • 变得无法访问
  • 意外失败

客户端应该如何处理? Apollo 当前失败并出现如下错误:

Unhandled (in react-apollo) Error: GraphQL error: Cannot ...

我想避免这种情况发生并处理这些错误。我如何使用 React Apollo 做到这一点?


供引用:

我目前正在使用 React-Apollo 和 Redux。

最佳答案

错误在组件属性的 error 字段中传递:http://dev.apollodata.com/react/api-queries.html#graphql-query-data-error

function MyComponent({ data }) {
  if (data.error) {
    return <div>Error!</div>;
  } else {
    // ...
  }
}

export default graphql(gql`query { ... }`)(MyComponent);

如果我们检测到有错误并且未在组件中访问 error 字段,则会打印该消息。

您可以编写一个高阶组件以通用方式处理错误,这样您就可以用它包装所有组件。

关于javascript - Apollo 客户端( react ): Handling unexpected errors,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43646789/

相关文章:

javascript - react native 选项卡导航器 : How to let icon overflow tabbar?

javascript - 将自定义类型列表传递给 GraphQL 突变

vue.js - Apollo - update() 方法被调用两次,两次都使用乐观/假数据

javascript - getStaticProps 在页面上生成静态 JSON 数据,这对 SEO 友好吗?

javascript - 我无法让 esri-leaflet 与 ReactJS 一起工作 --> 未定义的 basemapLayer

reactjs - Prop 已更新,componentDidUpdate 未触发

javascript - 在缓存类型策略中添加嵌套字段 - Apollo v3

javascript - HTML 标签下的这个奇怪的空白是什么?

javascript - 如何等待 Redux 操作从 React 组件更改状态

javascript - 当对象数组的属性值改变时触发函数