为什么在用ForEach渲染Array时,只能渲染出来第一个图片呢?
官方
鸿蒙小助手 2026-02-03 17:00:45 发布4064 浏览 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
相关推荐
鸿蒙智行完成全系升级 ADS 4.1 端到端时延降低 30%
7998
0鸿蒙图片选择与裁剪实战:从相册选择到智能裁剪的完整方案
周正
6124
0怎么实现一个图片一直循环上下匀速移动的动画效果?
鸿蒙小助手
7851
0页面中有一个横向滚动的Scroll组件,用户不知道可以滑动,怎么达成Scroll组件可滑动的暗示呢?
鸿蒙小助手
7698
0使用 @Builder数据刷新后UI没有刷新,导致图片错乱怎么解决?
鸿蒙小助手
7385
0
鸿蒙小助手
致力于为鸿蒙开发者谋福利
1014
帖子
7
提问
13565
粉丝
最新发布
鸿蒙直播全链路开发实践:打造丝滑稳定的直播体验
2026-03-11 15:26:18 发布鸿蒙软件工程实践:手把手教你优化编译配置,提升鸿蒙编译效率
2026-03-04 17:02:11 发布热门推荐