Running Apollo queries with SSR
By nature, GraphQL queries via HttpLink
are asynchronous. We have implemented a loading
component to show the user a loading message while the data is being fetched.
This is the same thing that is happening while rendering our React code on the server. All of the routing is evaluated, including whether we are logged in. If the correct route is found, all GraphQL requests are sent. The problem is that the first rendering of React returns the loading state, which is sent to the client by our server. The server does not wait until the GraphQL queries are finished and it has received all of the responses to render our React code.
We will fix this problem now. The following is a list of things that we have to do:
- We need to implement authentication for the SSR Apollo Client instance. We already did this for the routing, but now, we need to pass the cookie to the server-side GraphQL request too.
- We need to use a React Apollo-specific method...