El estado es un objeto que contiene datos que pueden cambiar en el tiempo. En React, el estado se usa para controlar los cambios en la interfaz.
Para que entiendas el concepto, piensa en el interruptor de una habitación. Estos interruptores suelen tener dos estados: encendido y apagado. Cuando accionamos el interruptor y lo ponemos en on
entonces la luz se enciende y cuando lo ponemos en off
la luz se apaga.
Este mismo concepto se puede aplicar a la interfaz de usuario. Por ejemplo, el botón Me Gusta de Facebook tendría el estado de meGusta
a true
cuando el usuario le ha dado a Me Gusta y a false
cuando no lo ha hecho.
No solo podemos tener en el estado valores booleanos, también podemos tener objetos, arrays, números, etc.
Por ejemplo, si tienes un componente Counter
que muestra un contador, puedes usar el estado para controlar el valor del contador.
Para crear un estado en React usamos el hook useState
:
import { useState } from 'react'
function Counter() {
const [count, setCount] = useState(0)
return (
<div>
<p>Contador: {count}</p>
<button onClick={() => setCount(count + 1)}>Aumentar</button>
</div>
)
}
Al usar el hook useState
este devolverá un array
de dos posiciones:
- El valor del estado.
- La función para cambiar el estado.
Suele usarse desestructuración para facilitar la lectura y ahorrarnos algunas líneas de código. Por otro lado, al pasarle un dato como parámetro al useState
le estamos indicando su estado inicial.
Con un componente de clase, la creación del estado sería así:
import { Component } from 'react'
class Counter extends Component {
constructor(props) {
super(props)
this.state = { count: 0 }
}
render() {
return (
<div>
<p>Contador: {this.state.count}</p>
<button onClick={() => this.setState({ count: this.state.count + 1 })}>
Aumentar
</button>
</div>
)
}
}