reactjs - 使用本机反应的 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);
解决方案
由于您正在包装 Counter 组件,因此它需要调用并捕获该承诺。此外,我会使用 react-apollos new Mutation 组件并将其简单地包装在<ErrorBoundary />
. 它将取代对上述代码的需求。