class Square extends React.Component { constructor(props) { super(props); this.state = { value: null, }; } render() { return ( <button className="square" onClick={this.setState({value: 'X'})}> {this.state.value} </button> ); } } class Board extends React.Component { renderSquare(i) { return <Square value={i}/>; } render() { const status = 'Next player: X'; 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> ); } } class Game extends React.Component { render() { return ( <div className="game"> <div className="game-board"> <Board /> </div> <div className="game-info"> <div>{/* status */}</div> <ol>{/* TODO */}</ol> </div> </div> ); } } // ======================================== const root = ReactDOM.createRoot(document.getElementById("root")); root.render(<Game />);¿Cuál es el error en la línea onclick para el botón? Por cada clic, debería mostrar una X en el cuadrado en el que hemos hecho clic pero no está haciendo eso. Soy un principiante tratando de aprender a reaccionar js. a través de sus tutoriales que se dan en su sitio oficial. Gracias por adelantado por la ayuda.
Tienes que pasar una función de devolución de llamada a onClick .
onClick={() => this.setState({ value: "X" })en vez de
onClick={this.setState({value: 'X'})