Manejo de Action Types y Action Creators en React Reducers
Clase 15 de 19 • Curso de React.js: Manejo Profesional del Estado
Contenido del curso
Estado y ciclo de vida con React.Component
Estados independientes y compuestos
Código imperativo y declarativo en React
- 10

Programación Imperativa vs Declarativa: Implementación en React
15:30 min - 11

Programación Declarativa: Simplificación y Abstracción de Estados
12:36 min - 12

Uso de UseReducer para manejar el estado en React
03:02 min - 13

Creación de Reducers: If, Switch y Reducer Objects en React
12:34 min - 14

Manejo de estados con useReducer en React
17:09 min - 15

Manejo de Action Types y Action Creators en React Reducers
Viendo ahora
Manejo del estado en TODO Machine
Próximos pasos
En la programación, especialmente al trabajar con frameworks como React, la gestión del estado de las aplicaciones puede ser un desafío. Afortunadamente, existen herramientas que facilitan esta tarea como es el caso del hook useReducer. Este hook permite un manejo más predecible y estructurado del estado a través de un enfoque funcional denominado reducers. En este artículo, exploraremos cómo la aplicación de action types y action creators puede simplificar y reducir errores en la manipulación del estado, una técnica que transforma la gestión del estado en React de manera declarativa y eficiente.
¿Qué son y para qué sirven los action types?
Los action types son una forma de evitar errores comunes al trabajar con el dispatch de acciones en tus reducers. Al utilizarlos, definimos constantes que representan las acciones que pueden afectar el estado de la aplicación. Veamos sus ventajas y cómo implementarlos.
- Claridad: Los action types proporcionan un entendimiento claro de las acciones permitidas en el reducer.
- Consistencia: Evitan errores tipográficos ya que las acciones se definen como constantes y se reutilizan.
- Depuración: Facilitan la identificación de errores. Si se comete un error de escritura, el código no ejecutará una acción inexistente y, en su lugar, generará una alerta.
¿Cómo se implementan los action types?
La implementación de los action types comienza con la creación de un objeto que contiene las constantes. Cada acción es una propiedad de este objeto y su valor es un string que lo identifica. Ejemplo:
const ACTION_TYPES = { CONFIRM: 'CONFIRM', ERROR: 'ERROR', // ... otros action types };
Utilizarlos es sencillo: en vez de escribir el string del action type directamente en el dispatch o en el reducer, referenciamos la constante.
¿Qué problemas resuelven?
Si accidentalmente escribimos un action type incorrecto, como "CONFIRM" con una letra equivocada, el reducer no ejecutará la acción esperada y el estado no cambiará como queremos. Sin action types, un error tipográfico puede causar que la lógica caiga en el caso por defecto o default del reducer, en lugar de llevar a cabo la operación deseada.
¿Cómo mejoran los action types el flujo de trabajo?
El uso de action types mejora el flujo de trabajo al evitar estos pequeños errores. Resultan especialmente útiles cuando se tiene un gran número de acciones que pueden dispararse en distintas partes de la aplicación. Además, herramientas como linters o IDEs pueden ayudar aún más al ofrecer autocompletado y detectar errores de escritura al momento de llamar a los action types.
¿Qué son los action creators y cómo se implementan?
Los action creators son funciones que encapsulan la creación de las acciones. Su objetivo es hacer el código más declarativo y reducir la repetición. Mejoran la legibilidad del código y hacen más sencilla la gestión de los payloads.
Implementación de un action creator
Un action creator típicamente retorna un objeto que representa la acción a despachar. Por ejemplo:
const confirmAction = () => ({ type: ACTION_TYPES.CONFIRM });
En tu componente, en lugar de escribir el objeto de la acción directamente, llamarías dispatch(confirmAction()).
¿Cómo utilizamos los action creators en React?
Integrar los action creators en React es bastante directo. Por cada acción que puedas despachar, creas una función que devuelva la acción formateada correctamente. Esto te permite llamar esas funciones en vez del dispatch directamente.
Esto se ve particularmente útil cuando tratamos con eventos como onChange de un input. En vez de hacer dispatch de la acción directamente en el manejador del evento, puedes pasar el valor del input al action creator correspondiente y mantener el código mucho más limpio y organizado.
Conclusión
La implementación de action types y action creators en una aplicación React hace que el código sea menos propenso a errores y más fácil de mantener. Aunque pueda parecer una capa de abstracción adicional, las ventajas en claridad y consistencia que ofrece esta técnica son inmensas. Los action types evitan los errores tipográficos y los action creators simplifican la actualización del estado, dándonos un código más declarativo y facilidad de depuración. Como resultado, podemos centrarnos en construir lógica de negocio sin preocuparnos por los detalles de la implementación del manejo del estado.