Reactjs, проблема клиента Apollo с хранилищем - PullRequest
0 голосов
/ 06 апреля 2020

Я работаю на reactjs сайте, который использует graphql и паруса js на сервере. Моя проблема в том, что текущая структура реакции внешнего интерфейса использует много запросов и мутаций для запуска процесса, подобного мастеру, где Пользователь заполняет опрос. На стороне клиента клиент apollo использует localalstorage или sessionstorage (оба ограничены 5M) на chrome, поэтому мы получаем много проблем с apollo, неспособным установить setItem в хранилище, так как он превысит квоту браузера

Я не могу использовать политику извлечения «без кеша», так как приложение во многом зависит от значений, которые оно хранит в кеше

Что мне делать? - Реструктуризация клиентской части заняла бы много времени, что невозможно. - удалить ненужные данные ... но я должен убедиться, что он работает везде, в том числе в браузерах приложений insta и fb, которые будут иметь очень ограниченное пространство. - redux работает с клиентом apollo, поможет ли это, если я буду хранить данные в redux, а не в хранилище браузера?

Любые другие идеи?

ОБНОВЛЕНО Вот код, который я чувствую, что создает проблему

const cache = new InMemoryCache({
    fragmentMatcher
  })

const persistor = new CachePersistor({
    key: `local-key`,
    cache,
    storage: usePersistentStorage ? window.localStorage : window.sessionStorage,
    debug: isInDev
  })

Мне нужно изменить storage часть здесь

Ответы [ 2 ]

0 голосов
/ 06 апреля 2020

Вы можете использовать apollo-link-state, предоставленный apollo. У него крутая кривая обучения, но он очень полезен

0 голосов
/ 06 апреля 2020

Я думаю, что вместо redux контекстный API React будет полезен. Вы можете хранить там все, что хотите, и он доступен для всего сайта, без дополнительных затрат, создаваемых redux.

...