HarmonyOS 自定义封装的组件列表更新服用UI问题

问题大致为,我封装了一个list组件,组件宽100%,对里面的字组件设置了margin left和right,只有首个有左边距,只有最后一个有右边距,首先list有2个数据,ui正常显示,3秒后加载新数据,即list有3个数据时,此时ui第一个和第二个间距比正常的大,通过inspector发现,第二个有了左边距,正常情况它应该没有左右边距。

通过断点发现,foreach序号传递是0,1,0。在demo中,LoginPage页的build里,我直接用了系统的list,没有问题,但是用了自己封装的list就会有这种问题,对比代码,我并没有发现有什么不同。

Column() { 
  BaseList({ 
    dataList: this.hotArray, 
    itemLayout: (data: CommonRecommendCenterData, index: number) => { 
      this.itemStarProduct(data, index) 
    }, 
    listDirection: Axis.Horizontal, 
    enableScrollInteraction: true 
  }) 
    .width("100%") 
}.width("100%")
HarmonyOS
2024-08-08 17:46:57
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
FengTianYa

keyGenerator未缺省且未包含indexitemGenerator中包含index:此时keyGenerator生成由ArkUI框架部分接管,生成规则为自定义键值与index拼接成的字符串。

之前代码keyGenerator未缺省且包含index,这时key是由你自定义的接管,会出现重复的的数据

例如foreach序号传递是0,1,0。

分析过后,发现是BaseList中foreach的keyGenerator写的有问题将原来的代码

(item: ESObject, index?: number) => JSON.stringify(item) 改为 (item: ESObject) => JSON.stringify(item)
分享
微博
QQ
微信
回复
2024-08-08 20:38:20
相关问题
Tabs组件自定义导航栏UI问题
583浏览 • 1回复 待解决
HarmonyOS 自定义弹窗问题
216浏览 • 1回复 待解决
HarmonyOS ArkUI加载自定义组件
131浏览 • 1回复 待解决
HarmonyOS 自定义Dialog显示问题
91浏览 • 1回复 待解决
HarmonyOS 自定义弹窗CustomDialog问题
160浏览 • 1回复 待解决
HarmonyOS 引用自定义web模块问题
73浏览 • 1回复 待解决
HarmonyOS如何自定义视频组件样式
152浏览 • 1回复 待解决
自定义组件嵌套子组件
9021浏览 • 3回复 待解决
HarmonyOS TextInput自定义键盘问题
145浏览 • 1回复 待解决
如何在自定义函数中创建一个UI组件
1547浏览 • 1回复 待解决
Ark UI是否如何使用自定义字体
3026浏览 • 1回复 待解决
自定义装饰器使用问题
454浏览 • 1回复 待解决
HarmonyOS自定义组件增加方法如何实现
128浏览 • 1回复 待解决
自定义参数BuildProfile问题汇总
767浏览 • 1回复 待解决
HarmonyOS TextInput绑定自定义键盘问题
144浏览 • 1回复 待解决
如何自定义模拟Tabs组件
590浏览 • 1回复 待解决
如何自定义组件原型菜单
621浏览 • 1回复 待解决