HarmonyOS 数据改变未刷新页面

详情页导航栏数据改变,未刷新页面导航栏。

HarmonyOS
2024-08-09 12:11:59
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
put_get

@Track不能深度观测,可使用@ObservedV2和@Trace装饰器,可参考如下示例:

@Component 
struct HouseDetailNavigationBar { 
  @Prop 
  public data: string = "" 
  build() { 
    Text(this.data) 
      .fontSize(50) 
      .fontWeight(FontWeight.Bold) 
  } 
} 
@ObservedV2 
class HouseDetailDataManager { 
  @Trace 
  navigationDataList: string = "aaa" 
 
  setModel(data: string) { 
    this.navigationDataList = data 
    console.info("navigationDataList is set to " + this.navigationDataList); //这里打印已经变成bbb,但界面不刷新 
  } 
} 
class HouseDetailViewModel{ 
  public dataManager: HouseDetailDataManager = new HouseDetailDataManager() 
} 
@Entry 
@Component 
struct PropTest { 
  @State viewModel: HouseDetailViewModel = new HouseDetailViewModel() 
 
  @Builder 
  private naviBar() { 
    HouseDetailNavigationBar({ 
      data: this.viewModel.dataManager.navigationDataList, 
    }) 
  } 
  build() { 
    Row() { 
      Column() { 
        this.naviBar() 
        Button('change data', { stateEffect: true, type: ButtonType.Capsule }) 
          .width('80%') 
          .height(40) 
          .margin(10) 
          .onClick(() => { 
            this.viewModel.dataManager.setModel("bbb") 
          }) 
      } 
      .width('100%') 
    } 
    .height('100%') 
  } 
}
分享
微博
QQ
微信
回复
2024-08-09 18:40:44
相关问题
如何更新页面列表数据
6945浏览 • 1回复 待解决
怎么在进度条更新的时候刷新页面
4678浏览 • 1回复 待解决
dialog跳转新页面返回后dialog关闭
271浏览 • 1回复 待解决
HarmonyOS UI 刷新问题
511浏览 • 0回复 待解决
ForEach数组发生改变。UI没刷新
567浏览 • 1回复 待解决