问题场景调用 PersistentStorage.persistProp 持久化失败在按钮 onClick 事件中执行 PersistentStorage.persistProp(‘aProp’, 47)重启应用后在按钮 onClick 事件中执行 AppStorage.get<number\>(‘aProp’); // 返回 undefinedPersistentStorage和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); // AppStorage.setOrCreate(“aProp”, 50) console.log(11 $${AppStorage.get('aProp')}) }) }) hilog.info(0x0000, ‘testTag’, ‘Succeeded in loading the content. Data: %{public}s’, JSON.stringify(data) ?? ‘’); });
问题场景
调用 PersistentStorage.persistProp 持久化失败
PersistentStorage和UIContext相关联,需要在UIContext明确的时候才可以调用,可以通过在runScopedTask里明确上下文。如果没有在UIContext明确的地方调用,将导致无法持久化数据。
在onWindowStageCreate中调用示例如下: