• Lv2
    粉丝0

积分0 / 贡献0

提问1答案被采纳0文章0

作者动态

    LocalStorage.getShared() 什么场景下会失效?

    w00416770 显示全部楼层 发表于 2025-1-26 11:24:51
    【问题描述】
    问题现象和发生的背景
    我有个场景:通过native回调arkts逻辑,此时LocalStorage.getShared()好像失效变成undefined了


    相关的代码,截图,日志信息
    fakename.png
    左侧是之前的逻辑,右侧为规避方法修改后的逻辑。
    我尝试过的解决方法和结果
    直接从context中仍能获取到信息,支持不能从LocalStorage.getShared()获取到了

    我想要达到的结果
    想了解LocalStorage.getShared()的存在的原理,什么情况下会失效?

    【运行环境】
    硬件:had pc
    ROM版本:最新开发分支镜像
    DevEvoStudio版本:DevEco Studio 5.0.1 Release
    SDK版本:5.0.1(13)

    您尚未登录,无法参与评论,登录后可以:
    参与开源共建问题交流
    认同或收藏高质量问答
    获取积分成为开源共建先驱

    精彩评论2

    kuaile

    沙发 发表于 2025-2-14 14:02:01
    限制条件
    @LocalStorageProp/@LocalStorageLink的参数必须为string类型,否则编译期会报错。

    let storage = new LocalStorage();
    storage.setOrCreate('PropA', 48);

    // 错误写法,编译报错
    @LocalStorageProp() localStorageProp: number = 1;
    @LocalStorageLink() localStorageLink: number = 2;

    // 正确写法
    @LocalStorageProp('PropA') localStorageProp: number = 1;
    @LocalStorageLink('PropA') localStorageLink: number = 2;
    @StorageProp与@StorageLink不支持装饰Function类型的变量,框架会抛出运行时错误。

    LocalStorage创建后,命名属性的类型不可更改。后续调用Set时必须使用相同类型的值。

    LocalStorage是页面级存储,getShared接口仅能获取当前Stage通过windowStage.loadContent传入的LocalStorage实例,否则返回undefined。例子可见将LocalStorage实例从UIAbility共享到一个或多个视图。

    kuaile

    板凳 发表于 2025-2-14 14:18:00
    实例不明确就会返回undefined,这个接口已经评审废弃了,使用UIContext去拿数据

    Copyright   ©2025  OpenHarmony开发者论坛  京ICP备2020036654号-3 |技术支持 Discuz!

    返回顶部