HarmonyOS PersistentStorage 持久化数据成功后,AppStorge.get 为空

1. 在 component 组件 onClick 后调用。

PersistentStorage.persistProp<string>('test', '哈哈哈')

2. 在 EntryAbility 或者 Page 组件中调用下面代码返回空。

let test = AppStorage.get<string>('test')  
HLogger.info(TAG, '测试磁盘数据存储 ' + test)

3. 检查xml文件,是有保存对应的内容的PersistentStorage 持久化数据成功后,AppStorge.get 为空,是我的写法有问题吗?

HarmonyOS
1天前
浏览
已于2024-10-29 10:38:53修改
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
zbw_apple

​PersistentStorage和UIContext相关联,需要在UIContext明确的时候才可以调用,可以通过在runScopedTask里明确上下文。如果没有在UIContext明确的地方调用,将导致无法持久化数据。

在onWindowStageCreate中调用示例如下:​

windowStage.loadContent(‘pages/Index’, (err, data) => {  
  if (err.code) {  
    hilog.error(0x0000, ‘testTag’, ‘Failed to load the content. Cause: %{public}s’, JSON.stringify(err) ?? ‘’);  
    return;  
  }  
  let window = windowStage.getMainWindow();  
  window.then(win => {  
    let uiContext = win.getUIContext();  
    uiContext.runScopedTask(() => {  
      PersistentStorage.persistProp(‘aProp’, 47);  
      console.log(11 $${AppStorage.get('aProp')})  
    })  
  })  
  hilog.info(0x0000, ‘testTag’, ‘Succeeded in loading the content. Data: %{public}s’, JSON.stringify(data) ?? ‘’);  
});

​文档参考链接:

https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/arkts-persiststorage-V5#从appstorage中访问persistentstorage初始化的属性

分享
微博
QQ
微信
回复
18h前
相关问题
PersistentStorage持久存储问题
227浏览 • 0回复 待解决
PersistentStorage如何持久一个对象?
2674浏览 • 1回复 待解决
如何在IDE每次run项目数据持久
767浏览 • 1回复 待解决
HarmonyOS 如何进行数据持久
165浏览 • 1回复 待解决
网络请求创建持久问题
462浏览 • 1回复 待解决
数据持久的方式有哪些?
732浏览 • 1回复 待解决
如何实现应用数据持久存储
1917浏览 • 1回复 待解决
关于数据持久存储要如何实现
368浏览 • 2回复 待解决
卡片开发中如何实现数据持久
1858浏览 • 1回复 待解决
HarmonyOS 持久存储方案
22浏览 • 1回复 待解决
求大佬告知如何实现数据持久
276浏览 • 1回复 待解决
提问
该提问已有0人参与 ,帮助了0人