我正在尝试将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"
...
);
}
当然,这不是最好的方法还是唯一的方法?我想念什么?
3
facebook.github.io/react/docs/...
—
caub
您也可以这样做:jsfiddle.net/crl/69z2wepo/19804
—
caub 2015年