PersistentStorage持久化存储问题

在首页中 获取存储在PersistentStorage中的属性,使用在组件内部定义的方式获取,在登录页面先声明属性,在定义属性,在修改属性,退出app,在首页中获取的是默认值不是修改后的值。

HarmonyOS
2024-10-11 11:58:35
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
superinsect

在调用PersistentStorage.PersistProp或者PersistProps之前使用接口访问AppStorage中的属性是错误的,因为这样的调用顺序会丢失上一次应用程序运行中的属性值。应用在非首次运行时,PersistentStorage存储的上次退出应用的值丢失。我们可以先判断是否需要覆盖上一次保存在PersistentStorage中的值,如果需要覆盖,再调用AppStorage的接口进行修改,如果不需要覆盖,则不调用AppStorage的接口。

index中  
@State isLogin: boolean | undefined = false  
PersistentStorage.persistProp('isLogin', false);  
this.isLogin = AppStorage.get<boolean>('isLogin')  
  
login中  
@StorageLink('isLogin') isLogin: boolean | undefined = false;  
Button .onClick(() => {  
  PersistentStorage.persistProp('isLogin', true)  
  AppStorage.setOrCreate('isLogin', true);  
  this.isLogin = AppStorage.get<boolean>('isLogin')  
})
分享
微博
QQ
微信
回复
2024-10-11 17:34:48
相关问题
HarmonyOS 持久存储方案
241浏览 • 1回复 待解决
PersistentStorage如何持久一个对象?
2762浏览 • 1回复 待解决
如何实现应用数据持久存储
2122浏览 • 1回复 待解决
关于数据持久存储要如何实现
507浏览 • 2回复 待解决
关于数据持久使用问题
203浏览 • 1回复 待解决
数据持久遇到的各种问题
173浏览 • 1回复 待解决
网络请求创建后,持久问题
564浏览 • 1回复 待解决
HarmonyOS dataPreferences不是持久存储
375浏览 • 1回复 待解决