harmony学习状态管理State关键字

2024-03-12 22:13 harmony学习状态管理State关键字已关闭评论

需求

界面Text文本内容发生改变后,需要通知界面UI控件刷新,显示新文本的内容。

State关键字

State关键字装饰的变量,变量的值发生改变后,变量关联的控件会自动刷新,显示新的内容。

参考:harmony学习状态管理State关键字

// code by 每日教程teachcourse.cn
@Component
export struct DzTabHost {
  @State tab1: string = '首页'
  @State tab2: string = '任务列表'
  @State tab3: string = '我的'
  @State curPage: number = 1

  build() {
    Column() {
      // TabContent
      Column() {
        if (this.curPage == 0) {

          Text('我是首页')
            .fontSize($r('app.float.px32'))
            .fontColor(Color.Red)
        } else if (this.curPage == 1) {
          Text('我是任务列表')
            .fontSize($r('app.float.px32'))
            .fontColor(Color.Red)
        } else if (this.curPage == 2) {
          Text('我是个人中心')
            .fontSize($r('app.float.px32'))
            .fontColor(Color.Red)
        }
      }.layoutWeight(1)
      .width('100%')

      // Tab
      Row() {

        Text(this.tab1)
          .height('100%')
          .textAlign(TextAlign.Center)
          .border({ width: { right: $r('app.float.px1') }, color: Color.Grey })
          .layoutWeight(1)
          .onClick(() => {
            this.curPage = 0
          })

        Text(this.tab2)
          .height('100%')
          .textAlign(TextAlign.Center)
          .layoutWeight(1)
          .onClick(() => {
            this.curPage = 1
          })

        Text(this.tab3)
          .height('100%')
          .textAlign(TextAlign.Center)
          .border({ width: { left: $r('app.float.px1') }, color: Color.Grey })
          .layoutWeight(1)
          .onClick(() => {
            this.curPage = 2
          })
      }
      .width('100%')
      .height($r('app.float.px68'))
    }.width('100%')
    .height('100%')
  }
}

curPage使用State关键字装饰,点击Tab切换后改变了curPage的值,关联的Column()控件被刷新,显示if条件的内容。

当前文章价值6.96元,扫一扫支付后添加微信提供帮助!(如不能解决您的问题,可以申请退款)

你可能感兴趣的文章

来源:每日教程每日一例,深入学习实用技术教程,关注公众号TeachCourse
转载请注明出处: https://teachcourse.cn/3127.html ,谢谢支持!

资源分享

分类:harmony 标签:
Python常用100个关键字详细示例(1) Python常用100个关键字详细示例
什么是避孕? 什么是避孕?
关于WordPress后台设置中的WordPress地址和站点地址的解读 关于WordPress后台设置中的Wo
002-实现多个Fragment切换方法封装及各子生命周期执行情况分析 002-实现多个Fragment切换方法封

评论已关闭!