React中使用map遍历数组时如何仅渲染半数数量的组件
实现方法
直接在遍历前先截取符合数量要求的数组片段即可,修改后的代码如下:
{blogs.nodes .slice(0, Math.round(blogs.nodes.length / 2)) .map((ts) => <Component ts={ts} key={ts.id} />)}
逻辑说明
- 渲染数量计算:
Math.round(blogs.nodes.length / 2)会按照要求对数组长度除以2的结果做四舍五入取整,长度为8时计算结果为4,长度为奇数时也能得到正确的取整值 - 数组截取:
slice(0, 目标数量)会返回原数组从首位开始的指定数量元素,不会修改原始的blogs.nodes数组 - 注意事项:列表渲染时建议补充唯一
key属性,你现有数据里的id字段是天然的唯一值,加上后可以避免React的渲染告警,提升列表更新时的性能
效果校验
用你提供的示例数组测试,blogs.nodes总长度为8,计算后得到的待渲染数量为4,最终只会渲染4个组件,完全匹配需求。
内容的提问来源于stack exchange,提问作者Jaacoubi
相关产品推荐
相关产品推荐

