callback无法成功更新UI

我有一个如下的@state ViewModel,其中有一个成员变量title,直接在TestViewModel里延时修改title可以成功更新UI,而通过另外一个类的listener的callback修改同样的title不会更新UI,请问为什么,请问有什么办法解决么?期待您的回复,多谢多谢!

import { IBaseModelListener } from './IBaseModelListener'

export class TestViewModel implements IBaseModelListener {
  newsViewModel: NewsViewModel = new NewsViewModel(this)
  title: string = "aaa"

  onLoadFinish(data: string) {
    setTimeout(() => {
      this.title = "直接在TestViewModel里延时修改title可以成功更新UI,而通过另外一个类的listener的callback修改同样的title不会更新UI,请问有什么办法解决么?"
    }, 300)
  }

  refresh() {
    //通过另外一个类的listener的callback修改同样的title不会更新UI"
    this.newsViewModel.load()
/*    //"直接在TestViewModel里延时修改title可以成功更新UI"
    setTimeout(() => {
      hilog.error(0x0000, "Test", "直接在TestViewModel里延时修改title可以成功更新UI")
      this.title = "bbbb"
    }, 300)*/
  }
}

export class NewsViewModel {
  iBaseModelListener: IBaseModelListener = null;

  constructor(iBaseModelListener:IBaseModelListener) {
    this.iBaseModelListener = iBaseModelListener
  }

  load() {
    this.iBaseModelListener.onLoadFinish([])
  }
}
UI框架
UI
2024-04-16 12:56:37
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
Betsty

有如下几个问题:

1.) 函数  onLoadFinish 定义是需要字符串, 而在调用时传递的是空数组

2.) onLoadFinish中用到了异步操作, 有可能refresh执行在其前。 是否可以加 asyn/await试试?

分享
微博
QQ
微信
回复
2024-04-16 15:13:07
相关问题
安装Apache成功后,为什么无法运行?
925浏览 • 1回复 待解决
NAN无法配网成功,设备侧联网失败
5892浏览 • 2回复 待解决
Js如何定义callback函数
239浏览 • 1回复 待解决
JSBind 如何调用 JS 方法中的 callback
231浏览 • 1回复 待解决
TS的Callback类型找不到怎么回事?
543浏览 • 1回复 待解决
30s怎么更新什么时候更新
5290浏览 • 1回复 待解决
支付成功后没有收到回调?
162浏览 • 1回复 待解决
Ark UI 和Java UI 可以混合开发么?
2220浏览 • 1回复 待解决
鸿蒙UI框架没有 C++的 UI框架
11321浏览 • 2回复 待解决
有人升级成功鸿蒙了吗
5723浏览 • 2回复 待解决
如何确认延迟任务是否申请成功
153浏览 • 1回复 待解决
startAbility跳转不成功,错误码16000001
366浏览 • 1回复 待解决
DevEco Studio 不能直接更新
6729浏览 • 8回复 已解决
老机型更新鸿蒙2.0.0.230
3755浏览 • 2回复 待解决
Web组件如何判断网址是否加载成功
178浏览 • 1回复 待解决
有没有人成功调起了鸿蒙相机的
9423浏览 • 6回复 待解决
真机安装失败,模拟器安装成功
8124浏览 • 4回复 已解决
Ctex编译成功了但是没有pdf生成
1952浏览 • 0回复 待解决