HarmonyOS LocalStorage在Navgation内的使用

我们某个页面,之前是自己绑定一个LocalStorage,每次进这个页面LocalStorage都是重新new一次

现在改成Navigation之后LocalStorage不会重新new了,导致数据出问题,请问Navigation的情况下,各个页面因为不再是@Entry了,如何保证每次跳这个页面一次都绑定一个新的LocalStorage呢?

试了下面这样写可以,但是LocalNavDemo拿不到传进去这个LocalStorage,用this.getUIContext().getSharedLocalStorage()拿出来是空,请问这种方式传进去的LocalStorage如何拿到?

function initStorage():LocalStorage{
  let storage = new LocalStorage()
  storage.setOrCreate("KEY",Math.random()*1000)
  return storage
}
@Builder
export function LocalNavDemoBuilder(){
  LocalNavDemo({},initStorage())
}


@Component
export struct LocalNavDemo{

  @LocalStorageProp("KEY") localKey:number = 0
  @Consume pageStack: NavPathStack
  aboutToAppear(): void {
    let storage = this.getUIContext().getSharedLocalStorage()
    let key = storage?.get("KEY") as number
    console.log(key?.toString())
  }
  build() {
    NavDestination(){
      Text(`key:${this.localKey}`)
    }
  }
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
HarmonyOS
2024-12-25 08:39:58
695浏览
收藏 0
回答 1
回答 1
按赞同
/
按时间
Heiang

通过构造函数传递LocalStorage不能拿到实例, 可以创建全局map存LocalStorage, 再在对应的页面获取使用

分享
微博
QQ
微信
回复
2024-12-25 10:52:58


相关问题
HarmonyOS 如何修改H5localstorage
634浏览 • 1回复 待解决
HarmonyOS window无法使用onBackPress
639浏览 • 1回复 待解决
HarmonyOS 怎么应用使用拍照功能
933浏览 • 1回复 待解决
HarmonyOS Web组件使用localStorage报错
1682浏览 • 1回复 待解决
如何在Navigation中使用LocalStorage
1180浏览 • 1回复 待解决
HarmonyOS 如何设置WebviewlocalStorage
538浏览 • 1回复 待解决
HarmonyOS localStorage返回null
484浏览 • 1回复 待解决
HarmonyOS 如何清除weblocalStorage
570浏览 • 1回复 待解决
如何操作weblocalstorage
744浏览 • 1回复 待解决
HarmonyOS web缓存清除localStorage
697浏览 • 1回复 待解决
HarmonyOS webview h5localstorage
1096浏览 • 1回复 待解决
HarmonyOS LocalStorage.getShared()问题
946浏览 • 1回复 待解决
应用监听手机熄屏方法
1594浏览 • 1回复 待解决
Localstorage与AppStorage区别
3305浏览 • 1回复 待解决