Reactjs tic-tac-toe中的数组 类板扩展React.Component{ 建造师(道具){ 超级(道具); 此.state={ 正方形:数组(9)。填充(空), 下一个:是的, }; } handleClick(一){ const squares=this.state.squares.slice(); 正方形[i]=this.state.xIsNext?'X':'O'; 这是我的国家({ 正方形:正方形, xIsNext:!this.state.xIsNext, }); } renderSquare(一){ 返回( 这个.handleClick(i)} /> ); } render(){ const status='Next player:'+(this.state.xIsNext?'X':'O'); 返回( {状态} {this.renderSquare(0)} {this.renderSquare(1)} {this.renderSquare(2)} {this.renderSquare(3)} {this.renderSquare(4)} {this.renderSquare(5)} {this.renderSquare(6)} {this.renderSquare(7)} {this.renderSquare(8)} ); } }

Reactjs tic-tac-toe中的数组 类板扩展React.Component{ 建造师(道具){ 超级(道具); 此.state={ 正方形:数组(9)。填充(空), 下一个:是的, }; } handleClick(一){ const squares=this.state.squares.slice(); 正方形[i]=this.state.xIsNext?'X':'O'; 这是我的国家({ 正方形:正方形, xIsNext:!this.state.xIsNext, }); } renderSquare(一){ 返回( 这个.handleClick(i)} /> ); } render(){ const status='Next player:'+(this.state.xIsNext?'X':'O'); 返回( {状态} {this.renderSquare(0)} {this.renderSquare(1)} {this.renderSquare(2)} {this.renderSquare(3)} {this.renderSquare(4)} {this.renderSquare(5)} {this.renderSquare(6)} {this.renderSquare(7)} {this.renderSquare(8)} ); } },reactjs,Reactjs,在这种组件状态下,“正方形”是由九个空元素组成的数组。我不明白它指的是什么,因为我们已经分别定义了renderSquare()中的所有按钮。它定义了什么?还有其他方法吗?本例中的状态。正方形数组表示电路板上的当前值。 您引用的按钮呈现为一个元素,该元素显示该特定索引的状态值 state.squares数组初始化为null元素数组,因为只有在单击按钮时,该值才设置为X或O。本例中的state.squares数组表示电路板上的当前值。 您引用的按钮呈现为一个元素,该元素显示该特定索引的状态值 sta

在这种组件状态下,“正方形”是由九个空元素组成的数组。我不明白它指的是什么,因为我们已经分别定义了renderSquare()中的所有按钮。它定义了什么?还有其他方法吗?

本例中的
状态。正方形数组表示电路板上的当前值。
您引用的按钮呈现为一个
元素,该元素显示该特定索引的状态值


state.squares
数组初始化为
null
元素数组,因为只有在单击
按钮时,该值才设置为
X
O

本例中的
state.squares
数组表示电路板上的当前值。 您引用的按钮呈现为一个
元素,该元素显示该特定索引的状态值


state.squares
数组初始化为
null
元素的数组,因为只有在单击
按钮时,该值才设置为
X
O

如果为调试添加代码很好。该数组有九个位置。
renderSquare
函数接收其中一个位置作为参数
(i)
,然后返回该正方形的DOM元素-使用数组查看该正方形的状态。如果为调试添加代码很好,则该数组有九个位置。
renderSquare
函数接收其中一个位置作为参数
(i)
,然后返回该正方形的DOM元素-使用数组查看该正方形的状态。
class Board extends React.Component {

  constructor(props) {
    super(props);
    
    this.state = {
      squares: Array(9).fill(null),
      xIsNext: true,
    };
  }

 
 handleClick(i) {

    const squares = this.state.squares.slice();
    squares[i] = this.state.xIsNext ? 'X' : 'O';
    this.setState({
      squares: squares,
      xIsNext: !this.state.xIsNext,
    });
  }

  renderSquare(i) {

    return (
      <Square
        value={this.state.squares[i]}
        onClick={() => this.handleClick(i)}
      />
    );
  }

  render() {
    const status = 'Next player: ' + (this.state.xIsNext ? 'X' : 'O');

    return (
      <div>
        <div className="status">{status}</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>
    );
  }
}