Для того, чтобы отображать более сложные циклы в React, вам нужно привыкнуть к фрагментации ваших массивов. вы можете просто разбить массив дважды, используя следующую функцию, а затем вы можете рекурсивно отобразить этот массив, чтобы отобразить желаемый результат:
function chunk_array(arr,chunkSize=2) {
const result=[];
for(let i=0;i<arr.length;i+=chunkSize) {
result.push(arr.slice(i,i+chunkSize));
}
return result;
}
** ПРИМЕЧАНИЕ. Я сделал скрипт JS, чтобы вы могли визуализировать, как этот массив изменяется, чтобы стать формой, которая нам нужна для рендеринга желаемого html вывода ** JS FIDDLE
теперь вы можете использовать это при рендеринге для достижения sh того, что вы хотите .
import React from 'react';
function chunk_array(arr,chunkSize=2) {
const result=[];
for(let i=0;i<arr.length;i+=chunkSize) {
result.push(arr.slice(i,i+chunkSize));
}
return result;
}
const arr = [1,2,3,4,5,6,7,8,9,10];
const chunked = chunk_array(chunk_array(arr));// we chunk array twice to get desired structure.
class Example extends Component {
render() {
return (
<div className="container">
{chunked.map((container,i)=>(
<div className="base" key={i}>
{container.map((row,i2)=>(
<div key={i2} className={(i2===0?"left":"right")}>
{row.map((item,i3)=><span key={i3}>{item}</span>)}
</div>))}
</div>))}
</div>
)
}
}