为什么在用ForEach渲染Array时,只能渲染出来第一个图片呢?
官方
鸿蒙小助手 2026-02-03 17:00:45 发布2010 浏览 30 点赞 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
相关推荐
怎么使用colorFilter修改图片的颜色?
鸿蒙小助手
2853
0怎么把文件存到公共目录,在文件管理可以查看呢?
鸿蒙小助手
1810
0图片裁剪如何实现?
鸿蒙小助手
1894
0如何在自定义类中展示带图片的toast?
鸿蒙小助手
3798
0请问Image的图片地址可以使用三元表达式吗?
鸿蒙小助手
1545
0
鸿蒙小助手
致力于为鸿蒙开发者谋福利
979
帖子
7
提问
13565
粉丝
最新发布
HarmonyOS开发者测试服务专题,一站式聚合测试服务能力,护航应用全生命周期质量
2026-02-03 17:38:31 发布HUAWEI AGC平台,使能HarmonyOS应用开发提质增效
2026-02-03 17:36:38 发布热门推荐