参考:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V2/arkts-persiststorage-0000001474017166-V2#section5462163812155
从AppStorage中访问PersistentStorage初始化的属性
1.初始化PersistentStorage:PersistentStorage.PersistProp('aProp', 47);
2.在AppStorage获取对应属性:AppStorage.Get('aProp'); // returns 47
3.或在组件内部定义:@StorageLink('aProp') aProp: number = 48;
PersistentStorage.PersistProp('aProp', 47); @Entry @Component struct Index { @StorageLink('aProp') aProp: number = 48 build() { Row() { Column() { // 应用退出时会保存当前结果。重新启动后,会显示上一次的保存结果 Text(`${this.aProp}`) .onClick(() => { this.aProp += 1; }) } } } }
在PersistentStorage之后访问AppStorage中的属性
开发者可以先判断是否需要覆盖上一次保存在PersistentStorage中的值,如果需要覆盖,再调用AppStorage的接口进行修改,如果不需要覆盖,则不调用AppStorage的接口。
PersistentStorage.PersistProp('aProp', 48); if (AppStorage.Get('aProp') > 50) { // 如果PersistentStorage存储的值超过50,设置为47 AppStorage.SetOrCreate('aProp',47); }
注意:不要直接调用:AppStorage.SetOrCreate('aProp',47); 否则会直接覆盖持久化中的数据。