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问题
709浏览 • 1回复 待解决
HarmonyOS 请提供自定义组件封装demo
250浏览 • 2回复 待解决
HarmonyOS UI组件自定义点击范围
153浏览 • 1回复 待解决
HarmonyOS 自定义组件问题
227浏览 • 1回复 待解决
HarmonyOS 关于自定义弹窗封装调用
144浏览 • 2回复 待解决
HarmonyOS 自定义弹窗封装后不显示
158浏览 • 1回复 待解决
HarmonyOS 自定义弹框组件问题
280浏览 • 1回复 待解决
如何封装全局性自定义弹窗?
165浏览 • 1回复 待解决
HarmonyOS 自定义弹窗问题
462浏览 • 1回复 待解决
HarmonyOS 实现一个自定义分类列表
122浏览 • 1回复 待解决
HarmonyOS如何自定义组件Controller?
140浏览 • 1回复 待解决
HarmonyOS 自定义弹窗CustomDialog问题
401浏览 • 1回复 待解决
HarmonyOS 自定义组件事件处理
242浏览 • 1回复 待解决
HarmonyOS 自定义弹窗 (CustomDialog)问题
154浏览 • 1回复 待解决