关于HarmonyOS 鸿蒙Next StorageLink的使用, 以及存储到本地PersistentStorage内的值
关于HarmonyOS 鸿蒙Next StorageLink的使用, 以及存储到本地PersistentStorage内的值
- 代码如下:
@Component
export struct T {
@StorageLink("str") ttt: string = '' // 该值是否仅仅是默认值, 本地没有存储时的初始化值
build() {
Button({ type: ButtonType.Capsule, stateEffect: true }) {
Text('存储测试:' + this.ttt)
}.onClick(e => {
this.ttt = '新的值1'
PersistentStorage.persistProp('str', this.ttt) // 这行是否需要进行手动处理
// ?重启模拟器后ttt为何还是''
})
}
}
-
问题: 重启模拟器后本地并没有存储str对应的新值.
-
看论坛里好多是雷同的, 解释如下: a. 开发工具版本低: 使用的5.0.3.403(不低)
b. 没有设置保持数据:(已设置)
c. 在启动时设置 PersistentStorage.persistProp(‘str’, ‘xxxx’): 显示为: 存储测试:xxxx 然而并不是为了手动设值的, 主要就是存储, 存储并没有生效. 获取到的keys是空
- 为什么?
更多关于关于HarmonyOS 鸿蒙Next StorageLink的使用, 以及存储到本地PersistentStorage内的值的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
更多关于关于HarmonyOS 鸿蒙Next StorageLink的使用, 以及存储到本地PersistentStorage内的值的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
PersistentStorage.persistProp(‘num’, ‘’);
@Entry @Component struct Index { @StorageLink(“num”) ttt: string = ‘’
build() { Row() { Column() { Button({ type: ButtonType.Capsule, stateEffect: true }) { Text(‘存储测试:’ + this.ttt) }.onClick(e => { this.ttt = ‘新的值1’ }) } } } }
你缺少了PersistentStorage.persistProp(‘num’, ‘’); 这句 进页面要先写这句话 首次存入后 重开APP再次进来 执行这句代码 系统判断PersistentStorage num有值就会同步到appstorage中
他文档上写的时: Add property ‘key’ to AppStorage properties whose current value will be persistent. 我理解是在设置后, 可能需要手动去存储。
其实也怀疑了你说的这种方式。 测试是不生效的。
export class StoreDataViewModel {
static initLocalData() {
PersistentStorage.persistProp('isGuideLaunched', false)
}
}
// 以下是调用位置
onWindowStageCreate(windowStage: window.WindowStage): void {
StoreDataViewModel.initLocalData()
let page = "pages/main"
windowStage.loadContent(page, (err, data) => {
}
初始化的位置不对。文档说的是需要在loadcontent
成功后才能初始化。
https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/arkts-persiststorage-V5
这么牛的隐蔽功能要求, 居然不写到api文档调用处. 服了.
关于HarmonyOS鸿蒙Next StorageLink的使用,以及存储到本地PersistentStorage内的值,以下是简要说明:
StorageLink是HarmonyOS提供的一种存储抽象层,旨在简化应用对存储设备的访问。它支持多种存储类型,包括内部存储、外部存储以及特殊类型的存储(如NVMe等)。通过使用StorageLink,开发者可以更加灵活地管理应用数据,提高存储访问效率。
在HarmonyOS中,PersistentStorage用于持久化存储应用数据。一旦数据被写入PersistentStorage,即使设备重启,数据也会保留。要使用PersistentStorage存储数据,开发者需要先获取到StorageLink的实例,然后通过该实例访问PersistentStorage。
具体步骤如下:
- 获取StorageLink实例。
- 通过StorageLink实例访问PersistentStorage。
- 使用PersistentStorage提供的API进行数据写入和读取操作。
需要注意的是,写入PersistentStorage的数据需要符合一定的格式和规范,以确保数据的完整性和可读取性。此外,开发者还需要注意存储空间的限制,避免因为存储空间不足而导致数据写入失败。
如果在使用StorageLink和PersistentStorage过程中遇到问题,建议检查API的使用是否正确,以及存储空间是否充足。如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html。