HarmonyOS eventhub修改model后,不触发页面更新

在页面中直接调用Model的方法更新Model中的数据,页面会刷新,但是在Model中的eventhub接收到事件后更新Model中的数据,数据会更新,但页面不刷新

HarmonyOS
2024-12-20 17:35:54
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
shlp

constructor是类内部的操作,这个时候代理对象没生成,@Observed没法观察。在状态管理中,使用@Observed装饰类后,会给该类使用一层“代理”进行包装。当在组件中改变该类的成员变量时,会被该代理进行拦截,在更改数据源中值的同时,也会将变化通知给绑定的组件,从而实现观测变化与触发刷新。当开发者在类的构造函数中对成员变量进行赋值或者修改时,此修改不会经过代理(因为是直接对数据源中的值进行修改),也就无法被观测到。所以,如果开发者在类的构造函数中使用定时器修改类中的成员变量,即使该修改成功执行了,也不会触发UI的刷新。参考链接:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/arkts-observed-and-objectlink-V5#在observed装饰类的构造函数中延时更改成员变量

分享
微博
QQ
微信
回复
2024-12-20 19:56:51
相关问题
HarmonyOS 页面更新
254浏览 • 1回复 待解决
HarmonyOS 更新数据UI刷新
359浏览 • 1回复 待解决
返回页面触发aboutToAppear
4049浏览 • 1回复 待解决
HarmonyOS TabContent页面生命周期触发
798浏览 • 1回复 待解决
HarmonyOS 换成model动画放大实现不了
285浏览 • 1回复 待解决
HarmonyOS onBackPressed触发
151浏览 • 1回复 待解决
HarmonyOS 视图更新
196浏览 • 1回复 待解决
HarmonyOS onKeyEvent 按钮触发
291浏览 • 1回复 待解决
HarmonyOS navigation触发onpageshow
198浏览 • 1回复 待解决