OpenHarmony开发者论坛

标题: list循环渲染内容改变时不重新渲染 [打印本页]

作者: linhu0422    时间: 2024-1-26 10:05
标题: list循环渲染内容改变时不重新渲染
[md]请问一下关于弹窗中list循环渲染,只有在被循环数组个数增加时页面才重新渲染,但是被循环数组内容改变时不重新渲染是什么情况呢
[/md]
作者: 深开鸿_巴延兴    时间: 2024-1-26 17:08
当数据源的数组项为对象数据类型,并且只修改某个数组项的属性值时,由于数据源为复杂数据类型,ArkUI框架无法监听到@State装饰器修饰的数据源数组项的属性变化,从而无法触发ForEach的重新渲染。
为实现ForEach重新渲染,需要结合@Observed和@ObjectLink装饰器使用。
作者: 翻身咸鱼    时间: 2024-1-27 09:19
说个比较通俗易懂的解释:state的监听效果只能作用到以class为个体的变动,所以增加、减少、替换数组中的某些成员时,@state能触发ui重渲染。但是改变class的参数这个行为并没有导致class被替换。所以无法重新渲染。
有个比较简单的解决方案是改变参数之后,直接对数组做一个重新赋值。
作者: 马迪    时间: 2024-1-29 10:00
@Observed和@ObjectLink应该是OK的




欢迎光临 OpenHarmony开发者论坛 (https://forums.openharmony.cn/) Powered by Discuz! X3.5