HarmonyOS 标注的viewModel应该怎么设计,可以达到响应式

开发架构新增一层viewmodel,页面是这样使用的。

@State userInfo: IMUserInfo | null = this.viewModel.userInfo
  • 1.

但是userInfo并没有达到刷新页面的效果,请问应该如何设计?

HarmonyOS
2024-08-30 10:36:45
728浏览
收藏 0
回答 1
回答 1
按赞同
/
按时间
zbw_apple

可参考以下文档:

https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/arkts-observed-and-objectlink-V5

还有另外一种方法,类似你写的,再定义一个@State修饰的变量,userInfo.name变化后,但是需要再赋值给这个变量,这样UI才可以监听到变量值的变化。

struct Index { 
 @State viewModule: MyViewModule = new MyViewModule(); 
 @State newName: string = ‘’; 
 build() { 
  Row() { 
   Column() { 
    Text(${this.newName}) 
    .fontSize(50) 
     .fontWeight(FontWeight.Bold) 
    Button(‘change name’) 
    .onClick(() => { 
     this.viewModule.userInfo.name = “aaa”; 
     this.newName = this.viewModule.userInfo.name; 
     hilog.info(0x0000, ‘testTag’, ‘name = %{public}s’, this.viewModule.userInfo.name); 
    }) 
   } 
  } 
  .height(‘100%’) 
 } 
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
分享
微博
QQ
微信
回复
2024-08-30 20:13:05
相关问题
ArkUl中如何实现响应设计?
974浏览 • 0回复 待解决
关于鸿蒙开发UI框架响应设计
306浏览 • 0回复 待解决
组合索引应该如何设计
3114浏览 • 1回复 待解决
应该如何设计大量线程并发方案
2877浏览 • 1回复 待解决
HarmonyOS 获取网页Title 应该怎么获取
1781浏览 • 1回复 待解决