GraphQL react-apollo-可以直接导出/导入客户端吗?

时间:2018-12-09 11:57:45

标签: graphql apollo react-apollo

我有一个阿波罗安装文件services/apollo.js,我在其中导出客户端:

const client = new ApolloClient({
  cache,
  link: ApolloLink.from([stateLink, httpLink])
})

export default client

然后我将其导入并在其他地方正常使用:

<BrowserRouter>
  <ApolloProvider client={client}>
    <App />
  </ApolloProvider>
</BrowserRouter>

如果我想直接使用客户端(例如,手动触发查询),可以直接将其导入文件中,而不是通过ApolloConsumer访问它吗?

import client from 'services/apollo'

export const getSomeData = async () => {
  const { data } = await client.query({ ... })

  console.log(data)
}

1 个答案:

答案 0 :(得分:1)

是的,那应该很好。

此博客文章提到将单例用于Apollo:

  

我将单例与唯一的apollo客户端配合使用以保持唯一的缓存   并在所有代码中使用。

https://cheesecakelabs.com/blog/apollo-graphql-client-makes-api-integration-breeze/