11

I'm getting started with graphQL and apollo. I'm doing some simple queries and mutations fine but when I try to access data from apollo cache I keep getting "Can't find field me on object undefined" but when using apollo chrome plugin it returns data correct.

When logged into my app I run a simple query that fetches the user object from the server. It logs correct, I can see in chome dev apollo under queries and cache that my user data is there.

const ME_QUERY = gql`
query {
    me {
    _id
    username
    password
    exchanges {
        name
        active
        }
    }
}
`;

<Query query={ME_QUERY}>
  {({loading, error, data}) => {
    if (error) {
      return <Error error={error.message} />;
    }
    if (data) {
      console.log(data, 'data');
    }
    return <div>asdf</div>
  }}
</Query>

I have wrapped withApollo and I can log the client object fine in the component where I'm trying to query. I run the following code:

componentDidMount() {
    console.log(this.props.client.readQuery, 'propps');
    const  user = this.props.client.readQuery({
        query: gql`
{
  me {
    _id
    username
    password
    exchanges {
      name
      active
    }
  }
}
      `
});
console.log(user, 'user');

And that results in Uncaught Error: Can't find field me on object undefined Ive also tried with adding variables but it doesn't help.

Which object is undefined? Any idea why my query fails?

Piranha
  • 121
  • 1
  • 5

1 Answers1

-3

You are probably using Apollo Client > 2.5 which handles state locally. Read the migration guide for more information.

  • Use the default client resolver to resolve your local state
  • Use cache.write to write default data into your cache. This is the part of the migration that causes your crash.
ancyrweb
  • 1,220
  • 12
  • 12