使用apollo-boost持久缓存

时间:2018-04-15 14:16:18

标签: javascript reactjs caching graphql react-apollo

我有一个简单的问题。

我们如何使用apollo-boost lib来保存缓存?

我不确定如何使用以下配置实现apollo-cache-persist

const client = new ApolloClient({
  uri: 'http://localhost:8080/_/service/com.suppliers/graphql',
  clientState: {
    defaults: {
      networkStatus: {
        __typename: 'NetworkStatus',
        isConnected: false,
      },
    },
    resolvers: {
      Query: {},
      Mutation: {
        updateNetworkStatus: (_, { isConnected }, { cache }) => {
          cache.writeData({
            data: {
              networkStatus: {
                __typename: 'NetworkStatus',
                isConnected,
              },
            },
          })
          return null
        },
      },
    },
  },
})
提前谢谢!

1 个答案:

答案 0 :(得分:0)

按照缓存持久性示例here设置缓存:

然后,将其作为boost配置中的自定义缓存传递,如缓存配置部分here中所示:

例如:

import { InMemoryCache } from 'apollo-cache-inmemory';
import { persistCache } from 'apollo-cache-persist';

const cache = new InMemoryCache({...});

persistCache({
  cache,
  storage: window.localStorage,
});

import ApolloClient from "apollo-boost";

const client = new ApolloClient({
  uri: "https://48p1r2roz4.sse.codesandbox.io",
  cache: cache
});