1
votes

TLDR; managed to pull up a codesandbox with the issue, please have a look here.

enter image description herethings were working fine while using react-apollo 2.5, now we have started the process of migrating to 3.0.

snapshot of the relevant portion of my package.json

    "@apollo/client": "^3.0.0-beta.19",
    "@apollo/react-components": "^3.1.3",
    "@apollo/react-hoc": "^3.1.3",

Now I am getting the below error

Could not find "client" in the context of ApolloConsumer. Wrap the root component in an <ApolloProvider>.

The outermost component of my App is indeed the ApolloProvider,

the way I import ApolloProvider after migration is shown below

import { ApolloProvider } from "@apollo/client";

also I have taken care to import the withApollo hoc from "@apollo/react-hoc" as mentioned in migration docs.

Isn't migration just changing the versions in package.json and imports? or is there anything specific I need to know when creating the apollo client instance?

Please find below, the code used for creating client instance

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
});
1

1 Answers

0
votes

According to the migration docs, you shouldn't import withApollo hoc from @apollo/react-hoc

You should use hoc package from @apollo/client

import { withApollo } from "@apollo/client/react/hoc";

https://www.apollographql.com/docs/react/migrating/apollo-client-3-migration/#apolloreact-hoc-and-apolloreact-components