如何更改存储插件的默认@@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
已硬编码在插件中,无法重命名。序列化整个商店具有特殊的意义。否则,键必须是进入状态对象的点路径。
我使用 @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".
像这样
"example": "Hello World"
截至目前,值 @@STATE
已硬编码在插件中,无法重命名。序列化整个商店具有特殊的意义。否则,键必须是进入状态对象的点路径。