HarmonyOS 在类中对属性赋值,为什么无法触发视图更新?

@Entry
@Component
export struct Demodd {
  @State aa: a = new a();
  build() {
    Column() {
      Text("当前值:" + this.aa.name)
      Text("在外部调用方法能够更新视图")
        .onClick(() => {
          this.aa.setv('3')
        })
      // Text("变更")
      //   .onClick(() => {
      //     this.aa.setv();
      //   })
    }
  }
}

@Observed
class a {
  name: string = '2';

  constructor() {
    setTimeout(() => {
      this.setv();
      console.log("定时器执行完毕")
    }, 2000)
  }

  setv(v: string = '1') {
    this.name = v
  }
}
  1. 定时器中执行的setv方法,虽然值变更了,但是视图未更新。
  2. 在视图中点击执行setv方法,视图更新了。
阅读 410
1 个回答
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进