【发布时间】:2020-02-01 22:15:23
【问题描述】:
概述
我有一个渲染两个子组件的组件。子组件使用 apollo 的 useQuery 向服务器发出请求。问题是因为使用apollo-client时包含apollo-link-dedup,所以只有一个请求被发送到服务器。
我尝试将上下文设置为 forceFetch: true 指定的 here 但这似乎不适用于钩子。
这是查询:
// Generated query from @graphql-codegen/cli
import { useGetUploadUrlsQuery } from 'types/graphql'
useGetUploadUrlsQuery({
fetchPolicy: 'network-only',
context: {
forceFetch: true,
},
})
注意:传入唯一变量会绕过重复数据删除。任何人都可以提出的任何不那么老套的解决方案/解决方法都会有所帮助。
谢谢!
【问题讨论】:
-
如果请求相同且同时发生,为什么要触发两个单独的请求?
-
嘿@DanielRearden,这是因为每个查询都返回一个唯一的上传 URL,在这种情况下,我有两个上传表单都需要一个唯一的上传 URL。
-
有趣的用例。似乎是文档问题。请参阅下面的答案。
-
嘿@DanielRearden,添加
deduplication: false似乎不起作用。我也根据您链接的文档尝试了queryDeduplication: false,但这也不起作用
标签: reactjs react-apollo apollo-client react-apollo-hooks