如何使用Apollo对GraphQL查询进行重复数据删除?

时间:2020-07-31 14:06:04

标签: graphql apollo react-apollo

我将apollo-clientapollo-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的请求,并且我确认每次都点击了解析器。

要使重复数据删除正常工作,我还需要做其他事情吗?我觉得它应该开箱即用。我还要看什么?

0 个答案:

没有答案