首页 > 解决方案 > 使用本机反应的 React-Apollo 处理错误

问题描述

我正在使用 react-apollo 构建一个反应原生应用程序。我无法处理 graphql 错误。我尝试了一些方法,但它不起作用。如何捕获 graphql 错误?这是我的代码;

export default compose(
  graphql(UpdateCounter, {
    options: {
      fetchPolicy: 'cache-and-network'
    },
    props: (props) => ({
      appSyncUpdateCounter: (post) => {
        props.mutate({
          variables: post,
          optimisticResponse: () => console.log('...'),
          update: (cache, mutationResult) => {
            console.log(JSON.stringify(mutationResult, null, 2));
            if (mutationResult.data.updateCounter) {
              console.log(mutationResult.data.updateCounter);
            }
          },
        }).catch((e) => { console.log(e.graphQLErrors); });
      }
    }),
  }),
)(Counter);

标签: reactjsreact-nativegraphqlreact-apollo

解决方案


由于您正在包装 Counter 组件,因此它需要调用并捕获该承诺。此外,我会使用 react-apollos new Mutation 组件并将其简单地包装在<ErrorBoundary />. 它将取代对上述代码的需求。


推荐阅读