全新的反应。在react tic-tac-toe教程中,他们用下面的代码创建了一个3x3的硬编码网格:
render() {
return (
<div>
<div className="board-row">
{this.renderSquare(0)}
{this.renderSquare(1)}
{this.renderSquare(2)}
</div>
<div className="board-row">
{this.renderSquare(3)}
{this.renderSquare(4)}
{this.renderSquare(5)}
</div>
<div className="board-row">
{this.renderSquare(6)}
{this.renderSquare(7)}
{this.renderSquare(8)}
</div>
</div>
);
}
有没有可能基于传递给props的gridSize创建一个网格,使得render()中的整个代码都是一个循环?类似于:
render() {
return (
<div>
for (let row=0; row<props.gridSize; row++) {
<BoardRow rowIndex=row cols=gridSize> (how to pass two parameters to BoardRow?)
}
</div>
);
}
发布于 2021-07-20 01:44:16
使用几个Array.from
来创建给定长度的新数组,您可以将外部索引(0到2)乘以3,然后将其添加到内部索引(0到2)。
render() {
return (
<div>{
Array.from({ length: 3 }, (_, i) => (
<div className="board-row">{
Array.from({ length: 3 }, (_, j) => (
this.renderSquare((i * 3) + j)
))
}</div>
))
}</div>
);
}
https://stackoverflow.com/questions/68448655
复制