title: Apollo client not updating cache
body: <p>I am trying to use the Apollo mutation component but somehow, my cache (or ui?) isn't updated as I expect. The code executes just fine, but the new user data received from the server (such as uuid/id etc.) has never been populated with the current one.</p>
  
  <p>The 'updateCache' were I know about shouldn't be necessary for thus mutation as the returned fields of the query and mutation are both equal (?)</p>
  
  <p>This is how my code look likes;</p>
  
  <p><strong>Schema</strong></p>
  
  <pre><code>/**
   *
   * Reading user data from the cache
   */
  export const GET_USER = gql`
     query getUser {
        user @client {
           uuid
           email
           firstName
           lastName
           __typename
        }
     }
  `;
  
  /**
   *
   * Sending user data to the GraphQL server
   */
  export const SEND_USER = gql`
     mutation sendUser($input: UserInput!) {
        sendUser(input: $input) {
           uuid
           email
           firstName
           lastName
           __typename
        }
     }
  `;
  </code></pre>
  
  <p><strong>Component</strong></p>
  
  <pre><code>return (
        &lt;Mutation mutation={SEND_USER}&gt;
           {(sendUser, { loading, data, error }) =&gt; (
              &lt;Form handleOnSubmit={e =&gt; handleOnSubmit(e, sendUser)}&gt;
                 &lt;UserFieldset user={userState} handleOnChange={handleOnChange} /&gt;
                 &lt;Button type="submit" loading={loading} disabled={loading}&gt;
                    Create user
                 &lt;/Button&gt;
  
                 &lt;Query query={GET_USER}&gt;
                    {({ data }) =&gt; (
                       &lt;pre&gt;
                          &lt;h4&gt;GET_USER&lt;/h4&gt;
                          {JSON.stringify(data, null, 3)}
                       &lt;/pre&gt;
                    )}
                 &lt;/Query&gt;
  
                 &lt;pre&gt;
                    &lt;h4&gt;SEND_USER&lt;/h4&gt;
                    {JSON.stringify(data, null, 2)}
                 &lt;/pre&gt;
  
              &lt;/Form&gt;
           )}
        &lt;/Mutation&gt;
     );
  };
  </code></pre>
  
  <p>Both queries above work just fine, I can receive the defaults I've set for the user with GET_USER and I can do a mutation by SEND_USER, the mutation is done, and some data returned is showed by my test dump. It seems also that the cache has been updated somehow in the good way, but has been overridden again by the default values, If the last item in the cache is the current one. See my screenshots;</p>
  
  <p><strong>Screenshot of the initial state</strong></p>
  
  <p><a href="https://i.stack.imgur.com/L1qxA.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/L1qxA.png" alt="enter image description here"></a></p>
  
  <p><strong>Screenshot of the state after the mutation</strong>
  <a href="https://i.stack.imgur.com/zUq1k.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/zUq1k.png" alt="enter image description here"></a></p>