HarmonyOS 进行二级请求后变量监听失效
在view中的viewmodel里进行请求后得到数据对viewmodle中变量刷新时view不会刷新。
示例场景:
class RequestData{
data1?:string = undefined
data2?:RequestData2 = undefined
}
class RequestData2{
data3?:string =undefined
data4?:RequestData3
}
class RequestData3{
data5:Array<string> = ["111", "222", "3333"]
}
class Request{
callback:(requestData:RequestData)=>void
constructor(requestData:(requestData:RequestData)=>void) {
this.callback = requestData
}
request(){
console.log("refresh1")
if (this.callback!==undefined){
console.log("refresh2")
let requestData:RequestData = JSON.parse('{"data1":"data1", "data2":{"data3":"data3", "data4":{"data5":["data1","data5"]}}}')
let requestData2:RequestData = new RequestData()
requestData2.data1 = "normal data1"
requestData2.data2 = new RequestData2()
requestData2.data2.data3 = "normal data3"
requestData2.data2.data4 = new RequestData3()
this.callback(requestData2)
}
}
}
class ViewModel{
data?:RequestData = undefined
request?:Request = new Request((requestData)=>{
this.data = requestData
console.log("refresh3")
console.log(JSON.stringify(this.data))
})
refreshData(){
this.request?.request()
}
}
@Entry
@Component
struct textRequestView{
@State @Watch("viewModelChange") viewModel:ViewModel = new ViewModel()
viewModelChange(){
console.log("refresh4")
console.log(JSON.stringify(this.viewModel.data))
}
build() {
Column(){
Text(this.viewModel.data?.data1 ?? "2333").padding(10).fontColor(Color.Black)
Text(this.viewModel.data?.data2?.data3 ?? "3222").padding(10).fontColor(Color.Black)
Text(this.viewModel.data?.data2?.data4?.data5.toString() ?? "1234").padding(10).fontColor(Color.Black)
Text(JSON.stringify(this.viewModel.data)).padding(10).fontColor(Color.Black)
Text("点击更新数据").onClick(()=>{
this.viewModel.refreshData()
}).padding(10).backgroundColor(Color.Pink)
}
}
}
HarmonyOS
赞
收藏 0
回答 1
待解决
相关问题
HarmonyOS Web如何监听二级子页面加载完成
360浏览 • 0回复 待解决
HarmonyOS 二级页面左滑关闭问题
222浏览 • 1回复 待解决
Navigation二级导航嵌套
1175浏览 • 1回复 待解决
HarmonyOS nav跳转到二级页面后,返回上一级如何刷新页面
640浏览 • 1回复 待解决
HarmonyOS 需要二级联动的demo
275浏览 • 1回复 待解决
HarmonyOS 点击tabs如何跳转到二级页面
388浏览 • 1回复 待解决
二级浮层的出场动画实现
732浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何实现一级列表点击联动二级列表?
68浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何通过滑动二级列表联动一级列表?
59浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在HarmonyOS中实现二级联动的滑动效果?
88浏览 • 1回复 待解决
HarmonyOS升级版本后音量监听失效
511浏览 • 0回复 待解决
Navigation二级导航的首个页面出现时能否设置动画
712浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何提升HarmonyOS中二级联动功能的性能?
63浏览 • 1回复 待解决
HarmonyOS 的web是不是需要给二级域名来set cookie
249浏览 • 1回复 待解决
#鸿蒙通关秘籍#实现二级联动的基础思路是什么?
65浏览 • 1回复 待解决
HarmonyOS 是否具有悬浮窗口/二级菜单悬浮窗口的组件和样例代码?
282浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何实现二级联动的List组件数据懒加载?
70浏览 • 0回复 待解决
为什么说二级索引不唯一,不唯一是指什么不唯一呢?
2447浏览 • 1回复 待解决
#鸿蒙通关秘籍#在HarmonyOS中实现二级列表滚动联动时常见的性能优化方法有哪些?
69浏览 • 0回复 待解决
@Link二级object时 该怎么写呀 如图所示 $data.object 就会报错?
381浏览 • 1回复 待解决
网络请求后如何进行回调?
1005浏览 • 1回复 待解决
想统计一下鸿蒙卡片的日浏览量,人数,二级页面的日浏览量,人数
2浏览 • 0回复 待解决
#鸿蒙通关秘籍#我想实现一个普通的二级菜单弹窗,有人能帮我一下吗?
55浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何封装axios请求并进行二次封装
97浏览 • 1回复 待解决
HarmonyOS网络请求后JSON转换问题
699浏览 • 1回复 待解决
callback 方式修改对象会丢失ViewModel的UI同步渲染效果,建议refreshData方法直接调用request对象的request方法,方法直接返回requestData2对象。