如何在 React 中循环和渲染元素.js而没有要映射的对象数组?
2022-08-30 01:58:24
我正在尝试将jQuery组件转换为React.js而我遇到困难的事情之一就是基于for循环渲染n个元素。
我知道这是不可能的,或者建议这样做,并且如果模型中存在数组,则使用是完全有意义的。这很好,但是当你没有数组时呢?相反,您有一个数值,它等于要渲染的给定数量的元素,那么您应该做什么?map
下面是我的示例,我想根据元素的层次结构级别,在元素前面加上任意数量的 span 标记。因此,在级别 3 中,我希望在文本元素之前有 3 个 span 标记。
在javascript中:
for (var i = 0; i < level; i++) {
$el.append('<span class="indent"></span>');
}
$el.append('Some text value');
我似乎无法得到这个,或者任何类似于在JSX React.js组件中工作的东西。相反,我必须执行以下操作,首先将临时数组构建到正确的长度,然后循环该数组。
React.js
render: function() {
var tmp = [];
for (var i = 0; i < this.props.level; i++) {
tmp.push(i);
}
var indents = tmp.map(function (i) {
return (
<span className='indent'></span>
);
});
return (
...
{indents}
"Some text value"
...
);
}
当然,这不可能是最好的,或者说是实现这一目标的唯一方法?我错过了什么?