HarmonyOS 鸿蒙Next @StorageLink(key)和AppStorage建立双向数据同步

HarmonyOS 鸿蒙Next @StorageLink(key)和AppStorage建立双向数据同步

文档原话: 本地修改发生,该修改会被写回AppStorage中;

问题: 如下代码,修改了@StorageLink修饰的storLink的值,但是并没有写回AppStorage中

是我哪里理解错了吗,请各位指点~

AppStorage.SetOrCreate('PropA', 47);

@Entry()
@Component
struct AppStorageLink {
  [@StorageLink](/user/StorageLink)('PropA') storLink: number = 1;

  build() {
    Column({ space: 20 }) {
      Text(`From AppStorage ${this.storLink}`).width(200).height(50).backgroundColor('#c0c0c0')
        .onClick(() => this.storLink += 1)

      Text(`${AppStorage.Link('PropA').get()}`)

      Text(`${AppStorage.Get('PropA')}`)
    }
  }
}

更多关于HarmonyOS 鸿蒙Next @StorageLink(key)和AppStorage建立双向数据同步的实战教程也可以访问 https://www.itying.com/category-93-b0.html

5 回复

问题解决了,感谢楼主分享!

更多关于HarmonyOS 鸿蒙Next @StorageLink(key)和AppStorage建立双向数据同步的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


解决啦,获取AppStorage的值需要被**@State**修饰才能看出来改变啊!哥!

AppStorage.SetOrCreate('PropA', 47);

@Entry()
@Component
struct AppStorageLink {
  @StorageLink('PropA') storLink: number = 1;
  [@State](/user/State) num: number = 0

  build() {
    Column({ space: 20 }) {
      Text(`From AppStorage ${this.storLink}`).width(200).height(50).backgroundColor('#c0c0c0')
        .onClick(() => {
          this.storLink += 1
          this.num = AppStorage.Get('PropA')
        })

      Text(`${AppStorage.Link('PropA').get()}`)

      Text(`${AppStorage.Get('PropA')}`)

      Text(this.num.toString())
    }
  }
}

@StorageLink 换成@StorageProp, 可以实现一样的效果,点击依旧可以自增一, 区别在哪呀

双向绑定,但是在AppStorage中读取不到改变后的值呀,

在HarmonyOS中,@StorageLink(key)AppStorage用于实现组件与全局应用存储之间的双向数据同步。AppStorage是鸿蒙应用中的全局单例对象,用于存储应用的全局状态数据。@StorageLink(key)是一个装饰器,用于将组件的属性与AppStorage中的指定键值进行绑定。

当使用@StorageLink(key)装饰一个组件属性时,该属性会自动与AppStorage中对应的键值建立双向绑定关系。这意味着,当AppStorage中的值发生变化时,绑定的组件属性会自动更新;反之,当组件属性发生变化时,AppStorage中的对应值也会同步更新。

例如,假设在AppStorage中有一个键为userName的值,你可以在组件中使用@StorageLink('userName')来绑定这个值。这样,组件中的userName属性会与AppStorage中的userName保持同步。

这种机制简化了状态管理,使得开发者无需手动处理数据的同步和更新逻辑。@StorageLink(key)AppStorage的结合使用,特别适用于需要在多个组件之间共享和同步状态的场景。

总结来说,@StorageLink(key)AppStorage通过双向绑定机制,实现了组件与全局存储之间的高效数据同步,提升了应用的状态管理效率。

回到顶部