HarmonyOS 如何watch viewmodel中的数据变化显示对话框
viewmodel模式有个对话框根据请求网络还是请求缓存来决定是否显示,所有这个loadingPageStatus需要放到viewmodel中。但是如何watch他的变化来显示对话框,代码如下:
import { NavigationManager } from '@cmb/router';
import hilog from '@ohos.hilog';
@Component
export struct Page {
  build() {
    NavDestination() {
      RelativeContainer() {
        Button('跳转至测试页')
          .fontSize(50)
          .fontWeight(FontWeight.Bold)
          .alignRules({
            center: { anchor: '__container__', align: VerticalAlign.Center },
            middle: { anchor: '__container__', align: HorizontalAlign.Center }
          })
      }
      .height('100%')
      .width('100%')
      .onClick(() => {
        NavigationManager.getNavPathStack().pushDestinationByName('web', undefined)
      })
    }
    .onAppear(() => {
      hilog.debug(1, "NavigationTest", "onAppear0");
    })
    .onDisAppear(() => {
      hilog.debug(1, "NavigationTest", "onDisAppear0");
    })
    .onShown(() => {
      hilog.debug(1, "NavigationTest", "onShow0");
    })
    .onHidden(() => {
      hilog.debug(1, "NavigationTest", "onHidden0");
    })
    .title("首页")
  }
}
@Entry
@Component
struct Index {
  @State message: string = '测试Navigation生命周期';
  aboutToAppear() {
    let modules: string[] = ["@cmb/module1"]
    modules.forEach(async (value: string, index: number, array: string[]) => {
      let ns: ESObject = await import(value);
      ns.dynamicImport("");
    })
  }
  @Builder
  routerMap(builderName: string, param: object) {
    // Obtain the WrappedBuilder object based on the module name, create a page through the builder interface, and import the param parameter.
    NavigationManager.getBuilder(builderName).builder(param);
  };
  build() {
    Navigation(NavigationManager.getNavPathStack()) {
      NavDestination() {
        Page().width("100%").height("100%")
      }
      .onShown(() => {
        console.log("首页onShow")
      })
      .onHidden(() => {
        console.log("首页onHidden")
      })
      .onAppear(() => {
        console.log("首页onAppear")
      })
    }
    .mode(NavigationMode.Stack)
    .hideToolBar(true)
    .hideBackButton(true)
    .hideTitleBar(true)
    .navDestination(this.routerMap)
  }
}
        HarmonyOS
      
        赞
        
 收藏 0
 回答 1
 
        待解决
        
相关问题
 HarmonyOS class中创建对话框不能显示 
1061浏览  • 1回复 待解决
HarmonyOS 弹出对话框 
1276浏览  • 1回复 待解决
HarmonyOS 对话框布局 
955浏览  • 1回复 待解决
HarmonyOS 自定义对话框内部如何关闭该对话框? 
1249浏览  • 1回复 待解决
HarmonyOS  显示的对话框如何处理返回键消失的问题 
1131浏览  • 1回复 待解决
HarmonyOS  键盘把对话框顶上去,导致自定义对话框变形 
1426浏览  • 1回复 待解决
HarmonyOS 对话框弹出页面被遮挡 
1385浏览  • 1回复 待解决
HarmonyOS如何实现一个对话框样式的pages? 
1324浏览  • 1回复 待解决
HarmonyOS 如何实现对话框可以在任何页面加载 
975浏览  • 1回复 待解决
HarmonyOS如何从对话框获取用户返回结果? 
1539浏览  • 1回复 待解决
HarmonyOS openCustomDialog返回的对话框id是undefined? 
1232浏览  • 1回复 待解决
HarmonyOS 页面跳转后对话框不消失 
1213浏览  • 1回复 待解决
HarmonyOS Qt子对话框输入框无法输入文字 
1038浏览  • 1回复 待解决
HarmonyOS 自定义对话框自动关闭的问题 
1152浏览  • 1回复 待解决
HarmonyOS 自定义对话框的控制器 
907浏览  • 1回复 待解决
HarmonyOS 修改自定义对话框的转场方式 
868浏览  • 1回复 待解决
HarmonyOS如何全局打开一个自定义对话框? 
1384浏览  • 1回复 待解决
如何封装一个自定义Dialog对话框 
3585浏览  • 1回复 待解决
HarmonyOS 文本Text组件选择对话框自定义的方案 
1372浏览  • 1回复 待解决
HarmonyOS 在接口中如何主动打开一个界面/对话框 
1028浏览  • 1回复 待解决
HarmonyOS  网络请求框架中封装loading动画对话框问题 
1312浏览  • 1回复 待解决
HarmonyOS打开对话框时如何实现从下到上出现的动画? 
1665浏览  • 1回复 待解决
HarmonyOS 用@Watch来订阅数据变化时候,数据中每个属性变化都会导致调用这个@Watch方法 
1372浏览  • 2回复 待解决
HarmonyOS 怎么获取watch变化之前的数据 
776浏览  • 1回复 待解决
#鸿蒙通关秘籍#如何创建和使用自定义对话框组件 TextDialog? 
1224浏览  • 1回复 待解决





















参考示例如下: