如何从 Apollo 客户端的 useQuery 获取响应标头



我根本找不到这样做的方法。有谁知道这是否受支持?谢谢。

ApolloClient 发出请求的方法,以及使用它们的 React Hook,作为对数据实际获取方式的抽象。它可能来自通过HTTP的远程服务器,来自缓存,来自直接执行针对模式的请求等。因此,它们不会公开任何关于最初如何获取数据的信息,包括特定于传输的信息,如 HTTP 标头。

如果您需要访问此信息,适当的位置是位于您附加到HttpLink的链接中 - 可以是现有的链接,如ContextLinkErrorLink,也可以是您自己滚动的一些自定义链接。如果您在错误处理上下文中执行此操作,那么ErrorLink将是最好的选择,如注释中所建议的那样。

HttpLink将来自服务器的原始响应注入到所有链接使用的上下文对象中(请参阅此处(。假设您使用默认的fetchAPI 作为提取程序,则此响应将是一个响应对象。

所以你可以做这样的事情:

const link = onError(({ graphQLErrors, networkError, operation }) => {
const { response } = operation.getContext();
const { headers, status } = response;

// do something with the headers
});

相关内容

  • 没有找到相关文章