Я работаю над nextJS с реакцией-apollo и apollo-client. Я использую apollo-cache-persist для сохранения моих данных. Но когда я обновляю страницу, данные теряются.
Я попробовал решение, представленное здесь, но, к сожалению, не сработало.
import React from "react";
import Head from "next/head";
import App, { Container } from "next/app";
import { ApolloClient } from "apollo-client";
import {ApolloProvider} from "react-apollo";
import { InMemoryCache } from "apollo-cache-inmemory";
import { createHttpLink } from "apollo-link-http";
import { withClientState } from "apollo-link-state";
import fetch from "node-fetch";
import { resolvers, defaults } from "../Container/resolvers";
import { ApolloLink } from "apollo-link";
const cache = new InMemoryCache();
const stateLink = withClientState({
cache,
defaults,
resolvers
});
const httpLink = new createHttpLink({
fetch,
uri: "http://localhost:4444/",
headers: {
"Content-Type": "application/json"
}
});
export const client = new ApolloClient({
link: ApolloLink.from([stateLink, httpLink]),
cache
});
export default class MyApp extends App {
static async getInitialProps({ Component, ctx }) {
return {
pageProps: {
// Call page-level getInitialProps
...(Component.getInitialProps
? await Component.getInitialProps(ctx)
: {})
}
};
}
async ComponentWillMount() {
await persistCache({
cache
});
}
render() {
const { Component, pageProps, store } = this.props;
return (
<ApolloProvider client={client}>
<Container>
<Head>
<title>HELLO WORLD</title>
</Head>
<Component {...pageProps} />
</Container>
</ApolloProvider>
);
}
}
Я ожидаю, что кеш сохранится, но кеш ничего не возвращает при перезагрузке.