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

1. 在 component 组件 onClick 后调用。

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

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

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

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

HarmonyOS
2024-10-29 10:38:37
浏览
已于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) ?? ‘’);  
});
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.

​文档参考链接:

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

分享
微博
QQ
微信
回复
2024-10-29 17:44:50


相关问题
PersistentStorage持久存储问题
1721浏览 • 0回复 待解决
HarmonyOS 数据持久同步问题
1098浏览 • 1回复 待解决
PersistentStorage如何持久一个对象?
3757浏览 • 1回复 待解决
HarmonyOS 数据持久demo
887浏览 • 1回复 待解决
如何在IDE每次run项目数据持久
1431浏览 • 1回复 待解决
网络请求创建持久问题
1552浏览 • 1回复 待解决
HarmonyOS 基本类型数据持久
966浏览 • 1回复 待解决
关于数据持久使用问题
1190浏览 • 1回复 待解决
数据持久遇到的各种问题
1127浏览 • 1回复 待解决
HarmonyOS 如何进行数据持久
1144浏览 • 1回复 待解决