Estoy usando setState para incrementar la puntuación de un cuestionario que hice. Estoy usando el método de devolución de llamada, por lo que no cambio los datos, pero solo me muestra una puntuación de 2. No entiendo lo que estoy haciendo mal aquí. Llamo a la función de cálculo de puntaje cada vez que el formulario es enviado onSubmit={this.calculateScore}.
if(this.state.question1 === '1996') { this.setState((curr)=>{ return {score: curr.score++} }) } if(this.state.question2 === 'NWA') { this.setState((curr)=>{ return {score: curr.score++} }) } if(this.state.question3 === 'bad-boy') { this.setState((curr)=>{ return {score: curr.score++} }) } if(this.state.question4 === 'big-l') { this.setState((curr)=>{ return {score: curr.score++} }) } if(this.state.question5 === 'snoop-dogg') { this.setState((curr)=>{ return {score: curr.score++} }) } console.log(this.state); console.log('calculating') }Está utilizando el valor del operador postFix value++ en lugar del prefijo ++value . Pruebe con el operador de prefijo y debería funcionar bien,
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Increment