TLDR;设法解决了这个问题,请输入look here。
在使用react-apollo 2.5时一切正常,现在我们开始迁移到3.0。
package.json相关部分的快照
"@apollo/client": "^3.0.0-beta.19",
"@apollo/react-components": "^3.1.3",
"@apollo/react-hoc": "^3.1.3",
现在我遇到以下错误
Could not find "client" in the context of ApolloConsumer. Wrap the root component in an <ApolloProvider>.
我的应用程序的最外层组件确实是ApolloProvider,
迁移后导入 ApolloProvider 的方式如下
import { ApolloProvider } from "@apollo/client";
我也很注意从迁移文档中提到的“ @ apollo / react-hoc” 中导入 withApollo hoc。
迁移不只是更改package.json和导入中的版本吗?还是在创建阿波罗客户端实例时需要了解什么具体信息?
请在下面找到用于创建客户端实例的代码
import { ApolloClient, HttpLink, InMemoryCache } from '@apollo/client';
const cache = new InMemoryCache();
const client = new ApolloClient({
link: new HttpLink({
uri: process.env.REACT_APP_GRAPHQLURL,
}),
cache,
connectToDevTools: true
});
答案 0 :(得分:0)
根据迁移文档,您不应从 withApollo
导入 @apollo/react-hoc
hoc
您应该使用 @apollo/client
中的 hoc 包
import { withApollo } from "@apollo/client/react/hoc";