Apollo 客户端 - 在终止链接上调用 concat,这将不起作用

Posted

技术标签:

【中文标题】Apollo 客户端 - 在终止链接上调用 concat,这将不起作用【英文标题】:Apollo Client - Calling concat on a terminating link, which will have no effect 【发布时间】:2020-09-17 02:33:20 【问题描述】:

我有以下 Apollo 链接:

 const link = ApolloLink.from([
    serializingLink,
    httpAuthLink,
    queueLink,
    retryLink,
    errorLink,
    uploadLink,
    httpLink
  ]);

而且它们都具有正确的设置 添加新链接后,该错误开始出现在控制台中:

Error: You are calling concat on a terminating link, which will have no effect

通过阅读另一个问题,我看到这可能与数组内部链接的顺序有关。

【问题讨论】:

【参考方案1】:

终止链接是实际发送请求并接收响应的链接。在您的链条的最末端应该只有一个终止链接。在您发布的代码中,至少有两个终止链接——uploadLinkhttpLink。假设uploadLink 是使用createUploadLink 创建的,则无需同时包含它和httpLinkUploadLinkHttpLink 的替代品,因此您可以一起删除 httpLink

【讨论】:

谢谢!!我是 GraphQL 的初学者,我不知道终止链接 在此处查看文档:apollographql.com/docs/link/overview @DanielRearden 我一直在寻找这个答案几个小时,非常感谢! 这对我有用。多谢。删除httpLink 并仅使用uploadLink 是正确的方法。

以上是关于Apollo 客户端 - 在终止链接上调用 concat,这将不起作用的主要内容,如果未能解决你的问题,请参考以下文章

Apollo 客户端调用每个突变和查询两次(React)

Apollo 客户端基于状态跳过查询

在 nextJS 上配置 apollo 客户端以进行订阅的问题

终止与非终止链接阿波罗链接?

写入缓存时,Apollo 客户端链接状态“ 中缺少字段”?

在查询上遇到子选择,但是存储没有对象引用 Apollo Link State