HarmonyOS 怎么用一个变量观察其他很多个变量的变化

有一个提交按钮的颜色,需要很多个值非空才变为红色,否则变为灰色,可不可以用一个变量统一观察这很多个值,去判断按钮该显示什么颜色,比如Button().backgroundColor(this.color),this.color的值取决于很多个输入框的值

HarmonyOS
2天前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
Excelsior_abit

想将子组件与父组件的变量绑定起来,实现其中一个变量改变,对应的变量也做同步的改变,可以做如下操作:将子组件的变量需要用@Link修饰,且不能初始化将父组件的变量需要用@State修饰。传值的时候使用$符号修饰。

import Prompt from '@system.prompt'
@Entry
@Component
struct Index {
  //父组件的变量需要用@State修饰
  @State inputUserName:string ='张三'
  @State inputUserPsw:string ='张三'
  build() {
    Row() {
      Column() {
        Text(this.inputUserName).fontSize(20)
        // 使用子组件传值的时候用$传递
        LoginInput({hint:'请输入账号',inputVale:$inputUserName})
        LoginInput({hint:'请输入账号',inputVale:$inputUserPsw})

      }
      .width('100%')
    }
    .height('100%')
  }

}
@Component
struct LoginInput {
  private hint: string = '请输入账号密码';
  //子组件的变量需要用@Link修饰,且不能初始化
  @Link inputVale: string;
  build() {
    TextInput({placeholder:this.hint,text:this.inputVale})
      .onChange((value)=>{
        this.inputVale= value;
        Prompt.showToast({message:value})
      })
  }
}
分享
微博
QQ
微信
回复
2天前
相关问题
HarmonyOS定义一个map为临时变量
579浏览 • 1回复 待解决
多个pageAbility之间如何共享变量
1711浏览 • 1回复 待解决
一个页面怎么实现多个AbilitySlice?
14371浏览 • 5回复 待解决
如何订阅系统环境变量变化
412浏览 • 1回复 待解决
如何监听Viewmodel里变量变化
1962浏览 • 1回复 待解决
ArkTS中如何监听状态变量变化
1010浏览 • 1回复 待解决
如何实现一个监听网络变化方法
625浏览 • 1回复 待解决