最佳答案
我正在尝试将一个 jQuery 组件转换为 React.js,我遇到的一个困难是基于 for 循环呈现 n 个元素。
我明白这是不可能的,或推荐的,并且在模型中存在数组的地方,使用 map
是完全有意义的。这很好,但是当您没有数组时该怎么办呢?取而代之的是数值,它等于要呈现的给定数量的元素,那么应该怎么做呢?
这是我的例子,我想给一个元素加上任意数量的 span 标签,这些标签基于元素的层次结构。所以在第3级,我希望在 text 元素之前有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"
...
);
}
当然,这不可能是最好的,或者说是唯一的方法来实现这一点? 我错过了什么?