Как добиться сохранения состояния даже после перезагрузки в Ngrx - PullRequest
0 голосов
/ 13 октября 2019

У меня есть корзина покупок, которую я поддерживаю с помощью Ngrx, и для поддержания постоянства состояния после обновления страницы у меня есть два варианта:

  1. Стригировать состояние и сохранить его в локальном хранилище ивернуть его после перезагрузки.
  2. Stringify состояние и сохранить его в текстовом файле, а затем получить строку из файла и использовать JSON.parse для преобразования строки обратно в объект JSON.

IЯ храню данные о ценах, поэтому не хочу хранить их в локальном хранилище.

Что мне использовать? Или есть ли лучший способ сделать это?

Ответы [ 2 ]

1 голос
/ 13 октября 2019

Используя следующую библиотеку, вы можете достичь желаемого результата

https://www.npmjs.com/package/ngrx-store-localstorage

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

https://ngrx.io/guide/store/metareducers

0 голосов
/ 13 октября 2019

Вы можете использовать пакет ngrx-store-localstorage, как упомянуто https://stackoverflow.com/a/58362198/10112124, или написать свой собственный метаредуктор или, как вы упомянули, использовать эффекты для этого. Что касается последнего, у Томаса Траяна есть пример в его проекте angular-ngrx-material-starter .

Все вышеперечисленные варианты найдены, но я хотел дать ответ о том, что хранить

Я храню некоторые данные о ценах, поэтому не хочу хранить их в локальном хранилище.

Если у вас есть конфиденциальная информация, вы можете сохранить ее в хранилище сеансов. - после завершения сеанса хранилище будет очищено.

Вам не нужно хранить конфиденциальную информацию, почему бы вам не сохранить важную информацию, такую ​​как идентификатор товара и количество? Таким образом, вы можете повторно наполнить магазин этой информацией и создать свою корзину покупок с этой информацией, а также товары из каталога, которые вы загружаете обычным способом.

...