如何更改存储插件的默认@@STATE 键

How to change the default @@STATE key for storage plugin

我使用 @ngxs/storage-plugin 将应用程序状态同步到本地存储。序列化状态的默认存储键是@@STATE,有没有办法重命名默认键?

我在调用 NgxsStoragePluginModule.forRoot 时注意到,我可以使用 key 选项来更改状态片段的存储键,但是当我尝试存储整个状态时它不起作用

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" 存储在名为 "example".

的 localStorage 中

像这样

   "example": "Hello World"

截至目前,值 @@STATE 已硬编码在插件中,无法重命名。序列化整个商店具有特殊的意义。否则,键必须是进入状态对象的点路径。