HarmonyOS 鸿蒙Next 为什么每次运行AppStorage.get总是获取不到值?

发布于 1周前 作者 caililin 来自 鸿蒙OS

HarmonyOS 鸿蒙Next 为什么每次运行AppStorage.get总是获取不到值?

cke_155.png

index里112行存储成功了,再次运行,AppStorage.get(LastVersion)获取不到值,

之后再在其他页面再调用AppStorage.get(LastVersion),又可以获取到值。

应该如何修改?


更多关于HarmonyOS 鸿蒙Next 为什么每次运行AppStorage.get总是获取不到值?的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html

5 回复
先确认AppStorage.setOrCreate('LastVersion', 111)是否在AppStorage.get之前运行

更多关于HarmonyOS 鸿蒙Next 为什么每次运行AppStorage.get总是获取不到值?的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


您好请问 "再次运行",这个是指应用的重新启动还是 函数的再次调用.AppStorage是应用全局的UI状态存储,是和应用的进程绑定的,由UI框架在应用程序启动时创建,为应用程序UI状态属性提供中央存储。   也就是说,每次应用启动后创建新的进程,appstroage就会被新建,非持久化存储。如果需要持久化存储,推荐使用持久化数据PersistentStorage

确认下这个是否打钩了:

cke_318.png

打了,其他地方存储的token也能获取到

HarmonyOS 鸿蒙Next 中,AppStorage.get 方法无法获取到值可能由以下几个原因引起:

  1. 键值对不存在:检查你尝试获取的键是否确实已存储。如果键不存在,AppStorage.get 将返回默认值(如null或特定类型的默认值)。

  2. 存储类型不匹配:确保存储和获取时使用的数据类型一致。例如,如果存储的是字符串,获取时也应指定为字符串类型。

  3. 作用域问题AppStorage 可能具有不同的作用域(全局、会话等)。确认你在正确的作用域内获取数据。

  4. 同步/异步问题:如果存储操作是异步的,确保在数据实际存储后再尝试获取。

  5. 权限问题:检查应用是否有足够的权限访问存储。

  6. 存储损坏:在某些极端情况下,存储可能损坏,导致无法正确读取数据。

  7. 版本兼容性问题:确保你使用的HarmonyOS版本与AppStorage API兼容。

如果以上原因均已排除,仍无法解决问题,可能是系统级错误或特定场景下的bug。此时,建议直接联系官方客服以获取进一步的帮助。如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部