列表数组中插入数据后,刷新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();
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.

使用以上方式向数组里插入数据,这种方式,数据可以正确的插入,但刷新界面的时候,新插入的数据刷新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
相关问题
HarmonyOS 更新数据UI刷新
416浏览 • 1回复 待解决
ForEach数组发生改变。UI刷新
1232浏览 • 1回复 待解决
HarmonyOS 数组对象数据刷新
466浏览 • 1回复 待解决
数组列表如何实现数据双向同步?
853浏览 • 1回复 待解决
IF条件变化UI刷新
1100浏览 • 1回复 待解决
HarmonyOS 嵌套数组元素UI刷新方案
707浏览 • 1回复 待解决
HarmonyOS 列表刷新问题
982浏览 • 1回复 待解决
HarmonyOS LazyForEach问题刷新UI问题
556浏览 • 1回复 待解决
HarmonyOS ForEach列表刷新问题
514浏览 • 1回复 待解决