En un componente clásico, todo el estado está disponible como un solo objeto this.state = {} , me preguntaba si hay una forma similar de acceder al estado en un componente funcional. Puede acceder a propiedades individuales a través de sus nombres de variables, pero me pregunto si hay una forma de acceder a todas ellas a la vez como si estuvieran almacenadas en un objeto general, similar a un componente de clase.
No, no hay ningún objeto de estado consolidado al que pueda acceder que tenga todos los miembros de estado que ha configurado a través de useState .
Puede almacenar todo el estado de su componente en un solo objeto si lo desea (esto incluso se menciona en los documentos de useState cuando se habla de actualizaciones de devolución de llamada). Por ejemplo:
const [state, setState] = useState({ name: "", profession: "", age: null, // ... }); Para actualizar cualquier miembro de estado individual, debe manejar la creación de todo el nuevo objeto usted mismo (los establecedores de estado de useState no hacen la fusión que hace Component.prototype.setState ). Por ejemplo, establecer la age :
setState(state => ({ ...state, age: 42, }));Es importante usar el formulario de devolución de llamada (como siempre ocurre cuando se establece el estado en función del estado existente).
Pero a menos que haga eso, no, no hay un solo objeto al que tenga acceso.