Saya mencoba untuk mengkonversi komponen jQuery ke React.js dan salah satu hal yang saya mengalami kesulitan dengan rendering n sejumlah elemen berdasarkan for for loop.
Saya mengerti ini tidak mungkin, atau direkomendasikan dan bahwa di mana ada array dalam model itu masuk akal untuk digunakan map
. Tidak apa-apa, tetapi bagaimana dengan ketika Anda tidak memiliki array? Alih-alih Anda memiliki nilai numerik yang setara dengan sejumlah elemen yang diberikan untuk dirender, lalu apa yang harus Anda lakukan?
Inilah contoh saya, saya ingin awalan elemen dengan jumlah tag rentang yang sewenang-wenang berdasarkan tingkat hierarkisnya. Jadi pada level 3, saya ingin 3 tag rentang sebelum elemen teks.
Dalam javascript:
for (var i = 0; i < level; i++) {
$el.append('<span class="indent"></span>');
}
$el.append('Some text value');
Saya sepertinya tidak bisa mendapatkan ini, atau apa pun yang serupa dengan bekerja di komponen JSX React.js. Alih-alih saya harus melakukan yang berikut, pertama membangun array temp dengan panjang yang benar dan kemudian mengulang array.
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"
...
);
}
Tentunya ini bukan yang terbaik, atau satu-satunya cara untuk mencapai ini? Apa yang saya lewatkan?