首页 > 其他分享 >PersistentStorage:持久化存储UI状态

PersistentStorage:持久化存储UI状态

时间:2024-06-06 15:36:17浏览次数:6  
标签:存储 48 47 AppStorage PersistProp PersistentStorage UI aProp

参考: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); 否则会直接覆盖持久化中的数据。

标签:存储,48,47,AppStorage,PersistProp,PersistentStorage,UI,aProp
From: https://www.cnblogs.com/xsj1989/p/18235211

相关文章