list循环渲染内容改变时不重新渲染

深开鸿_巴延兴

沙发 发表于 2024-1-26 17:08:58
当数据源的数组项为对象数据类型,并且只修改某个数组项的属性值时,由于数据源为复杂数据类型,ArkUI框架无法监听到@State装饰器修饰的数据源数组项的属性变化,从而无法触发ForEach的重新渲染。
为实现ForEach重新渲染,需要结合@Observed和@ObjectLink装饰器使用。

翻身咸鱼

来自手机 板凳 发表于 2024-1-27 09:19:41
说个比较通俗易懂的解释:state的监听效果只能作用到以class为个体的变动,所以增加、减少、替换数组中的某些成员时,@state能触发ui重渲染。但是改变class的参数这个行为并没有导致class被替换。所以无法重新渲染。
有个比较简单的解决方案是改变参数之后,直接对数组做一个重新赋值。

马迪

地板 发表于 2024-1-29 10:00:50
@Observed和@ObjectLink应该是OK的

Copyright   ©2023  OpenHarmony开发者论坛  京ICP备2020036654号-3 |技术支持 Discuz!

返回顶部