我将apollo-client
与apollo-link-http
一起使用。这是创建我的客户的代码
function createApolloClient() {
return new ApolloClient({
ssrMode: typeof window === "undefined",
link: new HttpLink({
uri: `${process.env.URL}/app/graphql`,
credentials: "same-origin"
}),
cache: new InMemoryCache()
});
}
我在一个页面上多次进行相同的查询,希望重复数据删除仅允许一次发送查询。我将查询放在.graphql
文件中,并且正在调用同一文件,因此我知道查询名称和请求的属性完全相同。
query getParcel($parcelId: Long) {
parcel(id: $parcelId) {
id
name
}
}
这是我在组件中发出的请求,因此您可以看到我的fetch-policy
是默认请求。
let { data } = useQuery(GET_PARCEL, {
variables: {
parcelId
}
});
在“网络”标签中可以看到许多对相同parcelId
的请求,并且我确认每次都点击了解析器。
要使重复数据删除正常工作,我还需要做其他事情吗?我觉得它应该开箱即用。我还要看什么?