为什么在用ForEach渲染Array时,只能渲染出来第一个图片呢?
官方
鸿蒙小助手 2026-02-03 17:00:45 发布4078 浏览 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
相关推荐
HarmonyOS 5/6 GPU加速绘图实战:高性能渲染项目全流程记录
果粒蹬
3906
0SVG/PNG 双格式导出:Canvas 渲染 → 多格式输出——让矢量图在任何地方都能看
在人间耕耘
2403
0HarmonyOS懒加载实战:图片、模块与数据的按需加载策略
鸽芷咕
3785
0鸿蒙应用Markdown渲染与富文本预览组件
Vant
1416
0
鸿蒙小助手
致力于为鸿蒙开发者谋福利
1129
帖子
8
提问
13572
粉丝
最新发布
【第三期】DevEco Profiler调优工具基础操作
2026-07-17 11:31:20 发布【第二期】DevEco Profiler调优工具简介
2026-07-17 11:23:20 发布热门推荐
京公网安备:11010502051901号