У меня проблема с методом getInitialProps
в Next JS. Это никогда не называется. Это проект, в котором у меня есть Apollo GraphQL
клиент для одних страниц и getInitialProps
для других. Я не уверен, как правильно настроить их для работы.
Apollo
работает нормально и получает данные, как и должно. Проблема в том, что getInitialProps
не вызывается.
Вот мой пользовательский _app.js
файл
const App = ({ Component, pageProps, apollo }) => {
return (
<ApolloProvider client={apollo}>
<Component {...pageProps} />
</ApolloProvider>
)
}
const API_URL =
process.env.NODE_ENV === "development"
? "http://localhost/wordpress/index.php?graphql"
: "https://page/index.php?graphql"
export default withApollo(({ initialState }) => {
return new ApolloClient({
link: new createHttpLink({
uri: API_URL,
fetch: fetch
}),
cache: new InMemoryCache()
})
})(App, { getDataFromTree })
А вот как я звоню getInitialProps
на странице
Coupons.getInitialProps = async function() {
const res = await fetch('http://localhost:8000/data/');
const data = await res.json();
console.log(`Data fetched. Count: ${data.length}`);
return {
shows: data.map(entry => entry.show)
};
};
Также. Страницы, на которых у меня Apollo
извлекаются данные, не обязательно называть это REST API
. Apollo
страниц и REST
страниц совершенно разные