1
0
Fork 0
mirror of https://github.com/terribleplan/next.js.git synced 2024-01-19 02:48:18 +00:00

[with-apollo] Fix missing rootContext (#3468)

This commit is contained in:
Brice BERNARD 2017-12-18 11:25:06 +01:00 committed by Tim Neutkens
parent 4a3aa261d6
commit 35ffad968c
4 changed files with 18 additions and 9 deletions

View file

@ -1,6 +1,7 @@
import Link from 'next/link'
import { withRouter } from 'next/router'
export default ({ pathname }) => (
const Header = ({ router: { pathname } }) => (
<header>
<Link prefetch href='/'>
<a className={pathname === '/' ? 'is-active' : ''}>Home</a>
@ -23,3 +24,5 @@ export default ({ pathname }) => (
`}</style>
</header>
)
export default withRouter(Header)

View file

@ -36,14 +36,20 @@ export default ComposedComponent => {
// and extract the resulting data
if (!process.browser) {
const apollo = initApollo()
// Provide the `url` prop data in case a GraphQL query uses it
const url = { query: ctx.query, pathname: ctx.pathname }
try {
// Run all GraphQL queries
await getDataFromTree(
<ApolloProvider client={apollo}>
<ComposedComponent url={url} {...composedInitialProps} />
</ApolloProvider>
<ComposedComponent {...composedInitialProps} />
</ApolloProvider>,
{
router: {
asPath: ctx.asPath,
pathname: ctx.pathname,
query: ctx.query
}
}
)
} catch (error) {
// Prevent Apollo Client GraphQL errors from crashing SSR.

View file

@ -1,9 +1,9 @@
import App from '../components/App'
import Header from '../components/Header'
export default props => (
export default () => (
<App>
<Header pathname={props.url.pathname} />
<Header />
<article>
<h1>The Idea Behind This Example</h1>
<p>

View file

@ -4,9 +4,9 @@ import Submit from '../components/Submit'
import PostList from '../components/PostList'
import withData from '../lib/withData'
export default withData(props => (
export default withData(() => (
<App>
<Header pathname={props.url.pathname} />
<Header />
<Submit />
<PostList />
</App>