有没有一种方法可以在使用apollo useQuery时禁用apollo-link-dedup?

时间:2019-10-03 14:54:14

标签: reactjs react-apollo apollo-client react-apollo-hooks

概述

我有一个呈现两个子组件的组件。子组件使用阿波罗的useQuery向服务器发出请求。问题是因为使用apollo-link-dedup时包含了apollo-client,只有一个请求被发送到服务器。

我尝试根据指定的here将上下文设置为forceFetch: true,但这似乎不适用于钩子。

以下是查询:

// Generated query from @graphql-codegen/cli
import { useGetUploadUrlsQuery } from 'types/graphql'

useGetUploadUrlsQuery({
  fetchPolicy: 'network-only',
    context: {
     forceFetch: true,
    },
  })

注意:传递唯一变量会绕过dedup。任何人都可以想出的,比较简单的解决方案/变通办法会有所帮助。

谢谢!

1 个答案:

答案 0 :(得分:0)

这可能是文档问题。我认为传递给context的正确密钥是deduplication,其值为false

useGetUploadUrlsQuery({
  fetchPolicy: 'network-only',
  context: {
   queryDeduplication: false,
  },
})

此记录为here。按照自述文件的指示,apollo-link-dedup的“默认包含”并不是真正的事实-逻辑可能如此,但链接本身却没有。