apollo-state-link не сохраняет состояние в кэше при обновлении страницы

Я заметил, что когда я обновляю свой кэш локально на стороне клиента и он переходит на другую страницу, кэш сохраняется с данными.

Однако, когда я обновляю эту страницу, кеш очищается. Есть ли способ сохранить состояние кэша даже после обновления?

1 ответ

InMemoryCache от Apollo хранится в памяти, поэтому он не сохраняется между загрузками страниц. Рекомендованный способ сохранения вашего кэша - использовать apollo-cache-persist. Пример использования:

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

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

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

const client = new ApolloClient({
  cache,
  // other client options
})

Для расширенной настройки и использования, проверьте репо. Также имейте в виду, что если вы используете SSR, существуют известные проблемы с использованием этой библиотеки. Вы также можете проверить apollo-cache-instorage, который может быть более дружественным к SSR.

Другие вопросы по тегам