如何全局捕获apollo的网络错误并在apollo 1.x中向用户显示有用的错误消息

时间:2018-03-20 06:30:19

标签: apollo apollo-client

目前,如果出现网络错误,apollo会提供如此Unhandled (in react-apollo) Error: Network error: Failed to fetch的控制台日志。我的问题是如何在一个地方处理这个并向用户显示通知?

有一些堆栈溢出答案向我们展示了如何在Apollo 2.0中明智地处理这个组件。我需要一种方法来处理Apollo 1.4中的整个应用程序。

我试图像这样使用afterware而它不起作用:

const logErrors = {
  applyAfterware({ response }, next) {
    if (!response.ok) {
      response
        .clone()
        .text()
        .then((bodyText) => {
          console.error('Network Error:');
          next();
        });
    } else {
      response
        .clone()
        .json()
        .then(({ errors }) => {
          if (errors) {
            console.error('GraphQL Errors:', errors.map(e => e.message));
          }
          next();
        });
    }
  }
};

networkInterface.useAfter([logErrors]);

0 个答案:

没有答案