如何实现Class单个属性改变 自动触发页面刷新
如何实现Class单个属性改变 自动触发页面刷新
        HarmonyOS
      
        赞
        
 收藏 0
 回答 1
 
        待解决
        
相关问题
 嵌套Class的属性变化无法触发UI渲染 
1260浏览  • 1回复 待解决
HarmonyOS @State修饰的Array<Object>修改对象的属性,单个item的页面数据没刷新。 
1171浏览  • 1回复 待解决
#鸿蒙通关秘籍#如何为多层嵌套类实现属性变化UI自动刷新? 
1410浏览  • 1回复 待解决
HarmonyOS 数据改变未刷新页面 
1628浏览  • 1回复 待解决
HarmonyOS  class里面定义的变量如何动态刷新page页面数据 
1222浏览  • 1回复 待解决
HarmonyOS  @BuilderParam 中变量变化,如何触发页面刷新 
833浏览  • 1回复 待解决
eTS中能实现对单个ListItem长按触发的效果吗? 
5844浏览  • 1回复 待解决
HarmonyOS 非UI类中改变State装饰属性,无法触发UI渲染 
1632浏览  • 1回复 待解决
鸿蒙页面检测不到数据发生改变的刷新问题,能否强制刷新 
11362浏览  • 1回复 待解决
HarmonyOS ObjectLink修饰符对象的属性改变不能引起UI刷新 
1596浏览  • 1回复 待解决
HarmonyOS Record或者Map保存的数据改变,页面没有刷新 
834浏览  • 1回复 待解决
TS UI中能实现对单个ListItem长按触发的效果吗? 
7923浏览  • 1回复 已解决
HarmonyOS 为什么@Link的属性变更不会触发UI刷新? 
1674浏览  • 1回复 待解决
HarmonyOS ArkTS的class中如何动态的改变值 
862浏览  • 1回复 待解决
HarmonyOS  @State修饰@observed装饰的对象, 对象里的数组改变, 不会触发ui刷新 
1300浏览  • 1回复 待解决
HarmonyOS HashMap中放入数组,数组数据发生改变时如增加或者删除元素,如何触发UI刷新 
918浏览  • 1回复 待解决
HarmonyOS 另一个列表改变子属性使列表未能刷新的问题 
759浏览  • 1回复 待解决
HarmonyOS ForEach数据源属性修改,页面不刷新 
1188浏览  • 1回复 待解决
Canvas如何触发刷新重复绘制? 
1978浏览  • 1回复 待解决
鸿蒙中JS页面组件属性值修改后,页面没有刷新 
5243浏览  • 0回复 待解决
class二次刷新渲染数组 
1912浏览  • 1回复 待解决
ForEach数组发生改变。UI没刷新 
2116浏览  • 1回复 待解决
HarmonyOS 除了在页面里,普通的class里如何监听appstorage里的属性变化 
1108浏览  • 1回复 待解决
HarmonyOS 单个页面防截屏问题 
923浏览  • 1回复 待解决
HarmonyOS class添加@Observed,如何通过@Watch只监听class内某个属性的变化 
1039浏览  • 1回复 待解决





















1.首先查找系统提供的API,发现系统提供了一个@Observed类装饰器可以拿来用。
2.参考系统提供的API,直接给SongItemData增加一个Observed装饰器,如图:
3.后来发现这样直接加的话,一旦属性有改变,会刷新SongItemData所有的属性绑定的页面,太耗性能,我们的目标是某个属性改变,刷新某个属性绑定的页面,而不是所有属性。对上面进行了改版,新增了一个有Observed修改的属性类,可以完美实现针对属性改变刷新对应的页面,如图1,图2:
4.item页面使用的时候需要使用@ObjectLink的变量接收下,然后在页面上使用,如图:
5.最后DownloadSongsController持有数据列表songList<SongItemData>,仅需要刷新SongItemData中的ObservedBoolean属性就可以了,页面也会跟着变化,如下图:
总结:这里介绍了系统API中的@Observed类装饰器在具体业务中的使用。