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

posted on 2024-06-06 15:20  邢帅杰  阅读(122)  评论(0编辑  收藏  举报