Apollo example: avoid double render in browser (#4734)
Apollo example: avoid double render in browser (#4734)

Apollo's getDataFromTree is supposed to be called during the server side rendering.
Being called in browser it fires an unnecessary fake render process and blocks components from rendering with loading=true.

Also there was a mistake in this code:

    // `getDataFromTree` renders the component first, the client is passed off as a property.
    // After that rendering is done using Next's normal rendering pipeline
    this.apolloClient = props.apolloClient || initApollo(props.apolloState.data)

**Apollo** component is not rendered by getDataFromTree actually, it renders the **App** directly, thus props.apolloClient will always be undefined.

This example was discussed here: https://github.com/zeit/next.js/issues/387.
azukaru/next.js,BlancheXu/test,JeromeFitz/next.js,flybayer/next.js,JeromeFitz/next.js,zeit/next.js,JeromeFitz/next.js,BlancheXu/test,JeromeFitz/next.js,azukaru/next.js,azukaru/next.js,azukaru/next.js,flybayer/next.js,zeit/next.js,flybayer/next.js,flybayer/next.js,zeit/next.js,BlancheXu/test