@CustomDialog 内的值如何在外部进行动态修改?

@CustomDialog 内的值如何在外部进行动态修改。

HarmonyOS
2024-09-30 09:44:14
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
FengTianYa

可以使用@Prop 来实现父组件动态修改子组件的值,并使用@watch 监听子组件值变更。注意,不要在aboutToAppear中判断属性变化。如下:

父组件:

import otherLoginDialog from '../component/OtherLoginDialog'  
@State loginType: string='1';  
build() {  
  Row() {  
    Column({space:20}) {  
      Text('loginType ==1')  
        .onClick(()=>{  
          this.loginType ='1'  
        })  
  
      Text('loginType ==2')  
        .onClick(()=>{  
          this.loginType ='2'  
        })  
  
      Text('loginType ==3')  
        .onClick(()=>{  
          this.loginType ='3'  
        })  
  
      otherLoginDialog({loginType:this.loginType})  
    }  
    .width('100%')  
  }  
  .height('100%')  
}

子组件:

@Prop @Watch('onchange') loginType?: string = LoginConstant.SP_USER_GESTURE  
  
onchange() {  
  if (this.loginType == LoginConstant.SP_USER_GESTURE) {  
    this.image = $r("app.media.psbc_view_login_icon_gesture")  
    this.title = "启用手势登录,登录更快捷"  
    this.content = ""  
  } else if (this.loginType == LoginConstant.SP_USER_FINGER) {  
    this.image = $r("app.media.psbc_view_login_icon_finger")  
    this.title = "启用指纹登录,登录更快捷"  
    this.content = "您在当前设备的指纹信息将用于该设备的邮储信用卡App身份验证,我们仅接收指纹信息验证结果,并不收集您的指纹信息。"  
  } else if (this.loginType == LoginConstant.SP_USER_FACE) {  
    this.image = $r("app.media.psbc_view_login_icon_face")  
    this.title = "启用面容登录,登录更快捷"  
    this.content = "您在当前设备的面容信息将用于该设备的邮储信用卡App身份验证,我们仅接面容纹信息验证结果,并不收集您的面容信息。"  
  }  
}
分享
微博
QQ
微信
回复
2024-09-30 18:16:37
相关问题
如何动态设置组件属性
886浏览 • 1回复 待解决
如何在应用使用媒体查询进行布局
580浏览 • 2回复 待解决
HarmonyOSAPP如何动态修改版本号
728浏览 • 1回复 待解决
header类型问题有懂吗?
2077浏览 • 1回复 待解决
获取和设置应用屏幕亮度
1067浏览 • 1回复 待解决