使用Redux时访问应用程序范围的客户端?
我使用Redux管理状态,Apollo执行graphQL查询 我创建了一个Apollo客户端,它应该可以从各种React组件访问使用Redux时访问应用程序范围的客户端?,redux,react-redux,apollo,react-apollo,Redux,React Redux,Apollo,React Apollo,我使用Redux管理状态,Apollo执行graphQL查询 我创建了一个Apollo客户端,它应该可以从各种React组件访问 import { ApolloClient } from 'apollo-client'; import { HttpLink } from 'apollo-link-http'; import { InMemoryCache } from 'apollo-cache-inmemory'; const link = new HttpLink({ uri: g
import { ApolloClient } from 'apollo-client';
import { HttpLink } from 'apollo-link-http';
import { InMemoryCache } from 'apollo-cache-inmemory';
const link = new HttpLink({
uri: getGraphqlEndpointUrl,
headers: {
'x-api-key': getApiKey(),
'Authorization': jwtToken,
},
});
const client = new ApolloClient({
link: link,
cache: new InMemoryCache(),
});
我如何使用Redux实现这一点?我是否将客户端存储在Redux存储区的变量中?这对我来说似乎有点奇怪,但并非不合理。但是有更好的方法吗?只有可序列化的对象应该通过redux存储——函数或具有函数作为属性的对象不属于redux存储。如果需要在React应用程序的组件层次结构之外引用Apollo客户端,只需创建一个导出客户端对象本身的模块(不是创建客户端的函数)。然后,您可以随时导入客户端(包括包含您的提供程序的代码),并且所有代码都将指向客户端的同一实例(和同一缓存) 客户机模块导出实例化的客户机本身非常重要——如果导出创建客户机的函数,则每次导入时都将重新创建它