HarmonyOS UI和ViewModel如何刷新数据

根据MVVM原则ViewMode请求数据,何时在page里调用vm的数据请求,vm返回一个Promise,这个数据又如何更新到PageUI上?

代码如下:

export class HomeViewModel {
  async getHomeNetData(): Promise<Array<HomeItem>> {
    let homeList: Array<HomeItem> = []
    await getHomeUI().then((listData: Array<HomeItem>) => {
      homeList = listData
    });
    return homeList
  }
}

页面

@Entry
@Component
export struct Home {
  @State homeList: Array<HomeItem> = []

  build() {
    Column() {
      List({ scroller: this.listScroller, space: 12 }) {
        ForEach(this.homeList, (item: HomeItem) => {
          ListItem() {
            HomeItemUI(item)
          }
        })
      }.listDirection(Axis.Vertical).lanes(2).margin({ left: 10, right: 10, top: 14 })
    }
  }
}
HarmonyOS
1天前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
zbw_apple

在生命周期aboutToAppear()中做数据赋值处理,UI会同步更新。被@State修饰的M层数据会监控数据变化,底层控制V视图更新数据。

分享
微博
QQ
微信
回复
1天前
相关问题
HarmonyOS viewmodel如何ui同步
568浏览 • 1回复 待解决
HarmonyOS 更新数据UI刷新
29浏览 • 1回复 待解决
HarmonyOS UI未在数据更新时刷新
22浏览 • 1回复 待解决
修改ForEach使用的数据对象,UI刷新
2082浏览 • 1回复 待解决
HarmonyOS UI刷新
205浏览 • 1回复 待解决
求告知如何强制刷新UI
526浏览 • 1回复 待解决
HarmonyOS 主线程刷新UI
460浏览 • 1回复 待解决
UI预览不会自动刷新, 且刷新较慢
936浏览 • 1回复 待解决
HarmonyOS LazyForEach问题刷新UI问题
188浏览 • 1回复 待解决
HarmonyOS UI刷新问题
667浏览 • 0回复 待解决
HarmonyOS @Builder UI刷新问题
130浏览 • 1回复 待解决