在这里,我可以同时使用 graphQLErrors 和 networkError:
const errorLink = onError(({ operation, graphQLErrors, networkError, forward }) => {
if (process.env.NODE_ENV !== 'production') {
if (networkError) {
console.log(`[Network Error]:`, networkError.message);
}
if (graphQLErrors) {
graphQLErrors.forEach((error) => {
console.log(`[GraphQL Error]:`, error.message);
});
}
}
});
但是当试图在 useQuery 中获取这些错误时,在组件级别,只有 networkError 被返回,而 graphQLErrors 是一个空数组:
let { loading, error, data } = useQuery(GET_ALL_PROJECTS, {
variables: { pageNum: 1, pageSize: 10 },
fetchPolicy: 'network-only',
});
例如,我从后端收到一个错误 403 到 onError 函数,但无法在 useQuery 中处理这个错误!