HarmonyOS 数据持久化后同步问题
当前需求需要将同步的数据保存到本地,后期对数据处理后需要发送通知到各个位置,但是保存本地后发送通知通知到页面后调用数据的时候明明接收和定义的类型是一致的但是就是无法进行赋值,导致数据不能同步,报TypeError: Obj is not a Valid object。
代码:
import { BusManager } from './BusManager';
import { StockGroupModel } from './StockGroupModel';
import { StockUtils } from './StockUtils';
import { BusinessError } from '@kit.BasicServicesKit';
@Entry
@Component
struct Index {
@State allGroups: StockGroupModel[] = []
aboutToAppear(): void {
BusManager.getInstance().register("STOCK_GROUP_UPDATE", this.updateAllGroups)
StockUtils.shared().queryGroups().then((val) => {
this.allGroups = val
})
}
// 监听方法,本地保存后会调用,用来进行数据同步刷新UI展示
updateAllGroups() {
StockUtils.shared().getAllGroups()
.then((val: StockGroupModel[]) => {
// 这里的左右两侧数据类型一致为什么会出错呢?
this.allGroups = val
})
.catch((error: BusinessError) => {
// 为什么会在这里报TypeError: Obj is not a Valid object@12f7ed7a
console.log(error)
})
}
build() {
Column() {
List({ space: 12 }) {
ListItem() {
Button("首次安装点击,模拟接口同步数据保存到本地")
.width("100%")
.padding({ top: 8, bottom: 8 })
.onClick(() => {
StockUtils.shared().syncGroups()
.then(() => {
this.allGroups = StockUtils.shared().allGroups
})
.catch((error: BusinessError) => {
console.log(error)
})
})
}
ListItem() {
Button("模拟请求接口并在本地插入数据")
.width("100%")
.padding({ top: 8, bottom: 8 })
.onClick(() => {
StockUtils.shared().addStock([0], ["SH600001", "SZ002013"])
.then((val: boolean) => {
console.log(" ADD SUCCESS")
})
.catch((error: BusinessError) => {
console.log(error)
})
})
}
ListItem() {
Text(this.allGroups.length > 0 ? JSON.stringify(this.allGroups) : "此处用来展示同步后的数据")
.width("100%")
.textAlign(TextAlign.Center)
}
}
.layoutWeight(1)
}
.width("100%")
.height("100%")
}
}
HarmonyOS
赞
收藏 0
回答 1
待解决
相关问题
关于数据持久化使用问题
702浏览 • 1回复 待解决
网络请求创建后,持久化问题
1145浏览 • 1回复 待解决
数据持久化遇到的各种问题
650浏览 • 1回复 待解决
持久化数据PersistentStorage使用问题求助
7719浏览 • 1回复 待解决
HarmonyOS 数据持久化demo
414浏览 • 1回复 待解决
如何在IDE每次run项目后数据持久化?
1075浏览 • 1回复 待解决
HarmonyOS 通过键值型数据库实现数据持久化是否有同步查询的接口
424浏览 • 1回复 待解决
HarmonyOS 使用AppStorage/PersistentStorage持久化数据,杀死进程后重启应用,数据丢失
329浏览 • 1回复 待解决
HarmonyOS PersistentStorage 持久化数据成功后,AppStorge.get 为空
638浏览 • 1回复 待解决
PersistentStorage持久化存储问题
1128浏览 • 0回复 待解决
HarmonyOS 基本类型数据持久化
489浏览 • 1回复 待解决
HarmonyOS使用“通过用户首选项实现数据持久化”问题
980浏览 • 1回复 待解决
HarmonyOS 使用首选项实现数据持久化遇到的问题
1003浏览 • 0回复 待解决
数据持久化的方式有哪些?
1489浏览 • 1回复 待解决
如何实现应用数据持久化存储
2689浏览 • 1回复 待解决
HarmonyOS 如何进行数据持久化
661浏览 • 1回复 待解决
卡片开发中如何实现数据持久化
2632浏览 • 1回复 待解决
关于数据持久化存储要如何实现
1028浏览 • 2回复 待解决
HarmonyOS 数据同步问题
215浏览 • 1回复 待解决
HarmonyOS 使用data.preferences进行数据持久化,再次运行app,获取已持久化的数据就为空了
411浏览 • 1回复 待解决
求大佬告知如何实现数据持久化
1029浏览 • 1回复 待解决
HarmonyOS 使用用户首选项持久化存储数据,重启应用后无法持久化存储
364浏览 • 1回复 待解决
HarmonyOS PersistentStorage 持久化的数据重启应用后数据为空
381浏览 • 1回复 待解决
HarmonyOS 使用PersistentStorage和AppStorage持久化数据后,再次打开应用仍然访问到的是默认数据
371浏览 • 1回复 待解决
HarmonyOS 如何通过键值型数据库实现数据持久化
402浏览 • 1回复 待解决
是因为在注册方法时没有绑定this ,执行时this为undifined。index.ets 15行改成BusManager.getInstance().register("STOCK_GROUP_UPDATE", this.updateAllGroups.bind(this))