react-apollo - 如何通过道具而不是上下文提供 ApolloClient
问题描述
我正在逐渐将 Apollo 整合到一个相当重要的 React/Redux 应用程序中。我现在不喜欢将我的 React 应用程序打包ApolloProvider
。我想ApolloClient
为不同的 GraphQL 端点支持多个实例,而且我不太喜欢嵌套提供程序的想法(我已经使用了 Redux 的Provider
)。一般来说,我试图“缓和”到 Apollo 并在一些特定的地方明确添加它。这是我的动机,现在这是我的问题:
通过 propsApolloClient
直接向组件提供实例对我来说似乎是合理的。Query
这样我们就明确了数据源并且可以支持多个客户端。这似乎有效:
const client = new ApolloClient({
uri: "https://w5xlvm3vzz.lp.gql.zone/graphql"
});
...
<Query client={client} variables={...} query={}>
...
</Query>
我对这种方法的唯一担心是控制台中出现错误:
Uncaught Error: Could not find "client" in the context of Query or as passed props. Wrap the root component in an <ApolloProvider>
关于避免此错误消息的任何想法?我意识到使用ApolloProvider
注入客户端更为典型,但对于我的情况,我更喜欢将其作为道具传递的明确性和灵活性。它似乎正在工作,但我想避免控制台错误。
谢谢!
解决方案
推荐阅读
- apache-kafka - 多个主题流监听器kafka之间通信出错 | 未从 .properties 文件中获取应用程序 ID
- java - 如何使用 mp3 文件完全退出活动
- c++ - 是否使用 std::atomic fetch_add 的结果来索引数组仍然是原子的?
- r - 在 R 中绘制 (beta) 曲线
- woocommerce - 如何设置重复收费?
- file-upload - Java库上传和下载大文件(> 10GB)到CEPH?
- node.js - 仅在第一次 API 调用成功后引导 nestjs 服务器
- flutter - flutter_bloc:^6.1.1 不改变状态
- react-native - 在 ios 中反应原生页脚背景颜色(使用原生基础组件)
- java - 通过读取测试套件 excel 文件创建 TestNG XML