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.