捕获使用react-adopt调用的Apollo Mutations中引发的错误

时间:2019-09-18 18:34:44

标签: reactjs apollo react-apollo graphql-mutation react-adopt

给出一些使用react-adopt定义的突变:

import { Mutation } from 'react-apollo';
import { adopt } from 'react-adopt'; 

...
const Composed = adopt({
     updateItem: ({ itemId, render }) => (
        <Mutation
          mutation={UPDATE_ITEM_MUTATION}
          refetchQueries={[{ query: SINGLE_ITEM_QUERY, variables: { id: itemId } }]}
        >
          {render}
        </Mutation>
    ),
     ... other mutations ...
});

如何捕获<Composed>中任何突变引发的错误?我尝试了以下方法:

const ExampleComponent = () => (
        <Composed itemId={this.props.id}>{
                ({ updateItem, ... other mutations ...}) => {
                  const updateItemError= updateItem.error;
                  if (updateItemError) {
                    return <DisplayError error={updateItemError}</DisplayError>;
                  }
                }
        }
)

但是在这种情况下,updateItem是一个函数(而如果updateItem是查询而不是突变,则它将是一个对象,并且我可以访问它的error属性

0 个答案:

没有答案