Я все еще новичок в React и работаю над созданием проекта игры жизни Джона Конвея. Я пытаюсь создать двумерную сетку квадратов, которая будет служить игровым полем для моей игры.
Мой подход заключается в использовании функции карты в рендере / возврате для создания сетки. У меня есть компонент Square.js, который состоит из этого:
import React, { Component } from 'react';
const Square = () => {
return (
<td className="Square"></td>
);
}
export default Square;
Затем в моем App.js я пытаюсь использовать вложенные функции .map для создания 2D-сетки квадратов. Я успешно создал набор квадратов, идущих по горизонтали, но я изо всех сил стараюсь вложить две функции .map для создания сетки.
class App extends Component {
constructor(props){
super(props);
this.state = {
boardHeight: 10,
boardWidth: 50
};
}
render() {
return (
<div>
<table className="table-board">
<tbody>
{Array(this.state.boardHeight).fill(1).map((el, i) => {
return (
<Square key={i} />
);
})}
</tbody>
</table>
</div>
);
}
}
Вот что у меня есть . Если я оберну компонент в строку таблицы следующим образом <tr><Square key={i} /></tr>
, я смогу сделать сетку вертикальной.
Как я могу вложить две функции .map, чтобы сделать сетку 2D?
Это то, что я пробовал, но я не могу заставить его работать:
return (
<div>
<table className="table-board">
<tbody>
{Array(this.state.boardHeight).fill(1).map((el, i) => {
{Array(this.state.boardWidth).fill(1).map((el, j) => {
return (
<div>
<tr><Square key={j} /></tr>
<Square key={i} />
</div>
);
})}
})}
</tbody>
</table>
</div>
);