列表数组中插入数据后,刷新UI的问题

dataArray: T[] = [];  
let oldArr: ObservedArray<T> = [];  
for(let a of this.dataArray) {  
  oldArr.push(a);  
}  
  
oldArr.splice(index, 0, ...newData);  
  
this.clear();  
this.dataArray.push(...newData);  
this.notifyDataReload();

使用以上方式向数组里插入数据,这种方式,数据可以正确的插入,但刷新界面的时候,新插入的数据刷新UI显示不正确,只有滑走再重新滑动到该插入位置后,才会显示正确的数据,请问是什么原因?如何可以解决?布局使用的是List lazyForEach的方式。

HarmonyOS
2024-10-10 13:26:07
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
Heiang

LazyForEach必须使用DataChangeListener对象来进行更新,第一个参数dataSource使用状态变量时,状态变量改变不会触发LazyForEach的UI刷新。key值要保证唯一,不唯一的话是不会刷新的。

分享
微博
QQ
微信
回复
2024-10-10 18:19:34
相关问题
ForEach数组发生改变。UI刷新
603浏览 • 1回复 待解决
HarmonyOS 数组对象数据刷新
14浏览 • 1回复 待解决
数组列表如何实现数据双向同步?
372浏览 • 1回复 待解决
IF条件变化UI刷新
778浏览 • 1回复 待解决
HarmonyOS 嵌套数组元素UI刷新方案
410浏览 • 1回复 待解决
HarmonyOS 列表刷新问题
658浏览 • 1回复 待解决
HarmonyOS LazyForEach问题刷新UI问题
66浏览 • 1回复 待解决
HarmonyOS ForEach列表刷新问题
73浏览 • 1回复 待解决
刷新列表加载更多问题
344浏览 • 1回复 待解决
状态装饰器 ui刷新问题
2471浏览 • 1回复 待解决
HarmonyOS 二维数组刷新问题
338浏览 • 1回复 待解决
修改ForEach使用数据对象,UI刷新
1871浏览 • 1回复 待解决