Кэш не сохраняется при обновлении - PullRequest
1 голос
/ 02 мая 2019

Я работаю над 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>
    );
  }
}

Я ожидаю, что кеш сохранится, но кеш ничего не возвращает при перезагрузке.

...