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
赞
收藏 0
回答 1
待解决
相关问题
安装Apache成功后,为什么无法运行?
925浏览 • 1回复 待解决
自定义组件中,批量更新多个状态变量 vs 批量更新多个非状态变量后更新一个UI无关状态变量强制更新UI
36浏览 • 1回复 待解决
NAN无法配网成功,设备侧联网失败
5892浏览 • 2回复 待解决
卡片开发模式,卡片更新时,数据量稍大些,无法更新
5416浏览 • 1回复 待解决
Js如何定义callback函数
239浏览 • 1回复 待解决
JSBind 如何调用 JS 方法中的 callback
231浏览 • 1回复 待解决
异步回调更新数据源,无法触发列表渲染
451浏览 • 2回复 待解决
TS的Callback类型找不到怎么回事?
543浏览 • 1回复 待解决
30s怎么更新什么时候更新
5290浏览 • 1回复 待解决
使用onDataChange更新数据是否会更新关联项
207浏览 • 1回复 待解决
调用errorManager.on('error', callback)后,应用发生异常时,应用没有退出
41浏览 • 1回复 待解决
支付成功后没有收到回调?
162浏览 • 1回复 待解决
Ark UI 和Java UI 可以混合开发么?
2220浏览 • 1回复 待解决
鸿蒙UI框架没有 C++的 UI框架
11321浏览 • 2回复 待解决
服务卡片的更新方式?服务卡片更新不生效
1782浏览 • 0回复 待解决
有人升级成功鸿蒙了吗
5723浏览 • 2回复 待解决
客户端更新升级功能,可以应用内更新吗
257浏览 • 1回复 待解决
如何确认延迟任务是否申请成功
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回复 待解决
有如下几个问题:
1.) 函数 onLoadFinish 定义是需要字符串, 而在调用时传递的是空数组
2.) onLoadFinish中用到了异步操作, 有可能refresh执行在其前。 是否可以加 asyn/await试试?