en mi aplicación,
class App extends Component { constructor(props){ super(props) this.state={ count:0 } } render() { return ( <div className='App-header'> <button onClick={()=>{this.setState({count:this.state.count=this.state.count++})}}>You Clicked This : {this.state.count} Times.</button> </div> ) } }Agregué un evento en este botón:
<button onClick={()=>{this.setState({count:this.state.count=this.state.count++})}}>You Clicked This : {this.state.count} Times.</button>pero cuando hago clic en él, el valor de la cuenta no se incrementa
pd: soy nuevo en reaccionar
Esto tiene más que ver con javascript simple y antiguo que reaccionar y administrar el estado.
A continuación se muestra una pequeña reproducción de su problema:
let y = 2; y = y++; console.log(y); y = ++y; console.log(y); Esto se debe a cómo funciona ++ [(operador de incremento)] (si se usa postfijo, con operador después del operando (por ejemplo, x++), el operador de incremento incrementa y devuelve el valor antes de incrementar).
De los documentos:
Si se usa postfijo, con operador después del operando (por ejemplo, x++), el operador de incremento incrementa y devuelve el valor antes de incrementar. Si se usa como prefijo, con el operador antes del operando (por ejemplo, ++x), el operador de incremento incrementa y devuelve el valor después del incremento.
También es digno de mención que no debe hacer nada como:
this.state.variable = randomValue;La solución
this.setState({count:this.state.count=++this.state.count})funcionará porque
this.state.count=++this.state.count devuelve el conteo de incrementos. Pero el estado en realidad se actualiza con this.setState y también puede hacer:
this.setState({count:++this.state.count})Además de las respuestas anteriores, al actualizar el estado, que depende del estado anterior, debe usar la función de devolución de llamada en la actualización del estado que recibe el estado anterior y el valor de retorno es el estado actualizado
this.setState(previousState => ({count: previousState.count + 1}))