React Native遍历未知Key对象提取RGB字段生成二维数组
问题原因
你的代码有三处错误导致拿不到全量数据:
data(即object.paints)是键名动态的普通对象,不是数组,直接调用map方法本身就不符合语法逻辑- 索引逻辑写反:遍历过程中你拿到的单个元素本身就是车漆条目,不需要再用遍历索引
id去二次取子属性 - 字段路径错误:
primarySprayCanRGB和primarySprayCanHighLightRGB是直接挂在每个车漆对象根下的属性,不存在primarySprayCan这层嵌套
修复后代码
直接用Object.values把动态键对象的值转成可遍历数组,再提取目标字段即可,不需要额外做索引判断:
{!loadinga && (() => { // 提取所有车漆条目组成数组 const paintEntries = Object.values(data) // 遍历生成目标二维数组 const colorList = paintEntries.map(paint => [ paint.primarySprayCanRGB, paint.primarySprayCanHighLightRGB ]) // 后续可以直接使用colorList做渲染或逻辑处理 console.log('目标二维数组:', colorList) // 不需要渲染内容就返回null,要渲染列表直接遍历colorList即可 return null })()}
如果要精简逻辑,可以直接在组件逻辑层提前预处理好数组,不要把计算逻辑堆在JSX渲染块里:
const colorList = !loadinga ? Object.values(data).map(item => [item.primarySprayCanRGB, item.primarySprayCanHighLightRGB]) : []
提示:尽量在渲染前完成数据转换,避免渲染阶段重复执行计算逻辑拖慢性能。
内容的提问来源于stack exchange,提问作者Marek Tandler
相关产品推荐
相关产品推荐

