Для чего используется параметр » i » в методе handleClick ()?

#reactjs

Вопрос:

Для чего используется параметр i в методе handleClick() ?

Почему мы не проходим мимо i , когда this.props.onClick() Square нас вызывают?

Является i ли объект событием?

 class Square extends React.Component {

    render() {
      return (
        <button 
        className="square" 
        onClick={()=> this.props.onClick()}
        >
          {this.props.value}
        </button>
      );
    }
  }
  
  class Board extends React.Component {
    constructor(props){
        super(props);
        this.state = {
            squares: Array(9).fill(null),
        };
    }

    handleClick(i){
        const squares = this.state.squares.slice();
        squares[i] = 'X';
        this.setState({squares: squares});
    }

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

Ответ №1:

Щелчок i в ручке указывает на индекс квадрата в this.state.squares массиве на доске. Если вы посмотрите на функцию renderSquare в Board, она возвращает квадрат с установленным значением prop onClick ()=> this.handleClick(i) , что означает, что при нажатии на квадрат он вызывает this.handleClick и сообщает i , какой квадрат был нажат.