3

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

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

4

1 回答 1

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'}}"

当您更改键时,它必须指向状态对象,否则它将 yield undefined。所以我们可以设置key哪个"example"将存储"Hello World"在名为“example”的键下的 localStorage 中。

像这样

   "example": "Hello World"

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

于 2019-04-18T16:22:30.870 回答