我使用@ngxs/storage-plugin
将应用程序状态同步到本地存储中。序列化状态的默认存储密钥为@@STATE
,是否可以重命名默认密钥?
我注意到在调用NgxsStoragePluginModule.forRoot
时,可以使用key
选项来更改部分状态的存储密钥,但是当我尝试存储整个状态时它不起作用
答案 0 :(得分:0)
应该将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
已在插件中进行了硬编码,无法重命名。它具有序列化整个商店的特殊含义。否则,键必须是进入状态对象的点路径。