Как изменить стандартный @@ STATE ключ для плагина хранилища - PullRequest
0 голосов
/ 18 декабря 2018

Я использую @ngxs/storage-plugin для синхронизации состояний приложения в локальном хранилище.Ключ хранения по умолчанию для сериализованных состояний: @@STATE, есть ли способ переименовать ключ по умолчанию?

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

1 Ответ

0 голосов
/ 18 апреля 2019

Параметр key должен был иметь имя path.Это не относится к имени ключа, используемого в localStorage.Несмотря на то, что @@STATE также создает ключ в localStorage с тем же именем.

Опция key представляет собой одну или несколько точечных нотаций в хранилище состояний.Например:

interface MyModel { example: string }

@State<MyModel>({
    name: 'app',
    defaults: { example: "Hello World" }
) //...

Если ключ установлен на @@STATE, то хранилище сохранит

   "@@STATE" : "{app: {example: 'Hello World'}}"

При изменении ключа он должен указывать на объект состояния, в противном случае ондаст undefined.Таким образом, мы можем установить key в "example", что будет хранить "Hello World" в localStorage под ключом с именем "example".

Как это

   "example": "Hello World"

На данный момент значение@@STATE жестко запрограммирован в плагине и не может быть переименован.Это имеет особое значение для сериализации всего магазина.В противном случае ключ должен быть точечным путем к объекту состояния.

...