Я создал таблицу, которая в конечном итоге возвращает 5 строк и 5 столбцов.
Для каждой ячейки я хочу иметь случайное количество ячеек другого цвета при загрузке страницы, однако на данный момент все ячейки остаются того же цвета.
Я хочу, чтобы свойство isLit
было true
или false
на каждой итерации для каждой ячейки, это определит, будет ли ячейка другого цвета или нет.
Есть какие-нибудь советы, как это сделать?
static defaultProps = {
nrows: 5,
ncols: 5,
chanceLightStartsOn: 0.25,
};
// [...]
render() {
const isLit = this.props.chanceLightStartsOn > Math.random();
const mainBoard = Array.from({ length: this.props.nrows }).map(() => (
<tr>
{Array.from({ length: this.props.ncols }).map((x, index) => (
<Cell isLit={isLit} />
))}
</tr>
));
return (
<table className="Board">
<tbody>
<h1>BOARD</h1>
{mainBoard}
</tbody>
</table>
);
}
Cell. js
class Cell extends Component {
constructor(props) {
super(props);
this.handleClick = this.handleClick.bind(this);
}
handleClick(evt) {
// call up to the board to flip cells around this cell
this.props.flipCellsAroundMe();
}
render() {
let classes = "Cell" + (this.props.isLit ? " Cell-lit" : "");
return <td className={classes} onClick={this.handleClick} />;
}
}