为什么在用ForEach渲染Array时,只能渲染出来第一个图片呢?
官方
鸿蒙小助手 2026-02-03 17:00:45 发布4063 浏览 68 点赞 1 收藏
本问答帖原创发布在华为开发者联盟社区 ,欢迎开发者前往论坛提问交流。
问题描述:
在渲染按钮组件的时候可以正常渲染,但是渲染图片的时候只能渲染出第一个。我看不懂keyGenerator的代码实现逻辑,不清楚为什么会这样。
解决方案:
ForEach提供了一个名为keyGenerator的参数,这是一个函数,开发者可以通过它自定义键值的生成规则。如果开发者没有定义keyGenerator函数,则ArkUI框架会使用默认的键值生成函数,即(item: Object, index: number) => { return index + '__' + JSON.stringify(item); }。
你这里的问题在于你更改了它默认的keyGenerator,而根据打印的结果可以看出,你在循环里的返回值item是一致的,也就是出现了重复键值问题,因此不创建新组件,所以只有第一个图片被渲染出来。这边只要把keyGenerator换成默认的或者使用return JSON.stringify(item)就可以了。
示例代码和其他解决方案相关的讨论,请点击原帖查看:
为什么在用ForEach渲染Array<ResourceStr>时,只能渲染出来第一个图片呢-华为开发者问答 | 华为开发者联盟 (huawei.com)
©本站发布的所有内容,包括但不限于文字、图片、音频、视频、图表、标志、标识、广告、商标、商号、域名、软件、程序等,除特别标明外,均来源于网络或用户投稿,版权归原作者或原出处所有。我们致力于保护原作者版权,若涉及版权问题,请及时联系我们进行处理。
分类
HarmonyOS
标签
ForEach
相关推荐
怎么实现一个图片一直循环上下匀速移动的动画效果?
鸿蒙小助手
7847
0页面中有一个横向滚动的Scroll组件,用户不知道可以滑动,怎么达成Scroll组件可滑动的暗示呢?
鸿蒙小助手
7695
0使用 @Builder数据刷新后UI没有刷新,导致图片错乱怎么解决?
鸿蒙小助手
7381
0如何实现选择多张图片上传?
鸿蒙小助手
3135
0
鸿蒙小助手
致力于为鸿蒙开发者谋福利
1009
帖子
7
提问
13565
粉丝
最新发布
【划重点】HarmonyOS 应用市场审核 3.5 驳回“十大高频问题”全解析
2026-02-13 21:44:15 发布ArkUI框架运行原理与常见性能优化方案
2026-02-12 19:40:38 发布热门推荐