Manejo de Action Types y Action Creators en React Reducers

Clase 15 de 19Curso de React.js: Manejo Profesional del Estado

Resumen

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.

      Manejo de Action Types y Action Creators en React Reducers