es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Debe siempre el envío de una acción provocar un cambio en el estado de la aplicación?

Esta es más bien una pregunta sobre las mejores prácticas. Estoy pensando en un trozo de código que observé en un reductor, donde iba así:


if (!state.arrayOfObjects) return;
else {/** agregar un objeto al array de objetos/}

Intuitivamente, pienso en una acción como algo que ocurre y provoca algún cambio en el estado de la aplicación. Si despachar una acción no produce ningún cambio en el estado, entonces siento que probablemente esa acción no debería haber sido despachada en absoluto. Si hay alguna condición dentro del reductor que evita que ocurra un cambio, probablemente debería haber sido una condición para el despacho de la acción en sí misma.

Por otro lado, tal vez la condición dentro de un reductor es una forma de crear una condición basada en una propiedad a la que no necesariamente se quiere que un componente esté suscrito. Sin embargo, creo que si la acción específica depende de esa propiedad, sería extraño que el componente no necesite el valor más reciente de esa propiedad a través de una suscripción para determinar si se debe despachar o no.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    En general, es una buena práctica manejar todas las condiciones dentro de los creadores de acciones en lugar de dentro de los reductores. Esto asegura que las acciones solo se despachen cuando tengan un impacto directo en el estado de la aplicación.

    Tener condiciones dentro de los reductores puede llevar a una complejidad innecesaria y confusión, ya que puede no ser evidente de inmediato por qué una acción no pudo cambiar el estado. También es más difícil rastrear la lógica de la aplicación cuando la condición está dividida entre el creador de acciones y el reductor.

    Si una acción específica depende de una propiedad que no debe desencadenar una nueva representación de un componente, aún es mejor manejar esa condición dentro del creador de acciones. Esto podría implicar pasar la propiedad como parámetro al creador de acciones, o almacenar la propiedad en una parte separada del estado y utilizar esa parte para determinar si la acción debe ser despachada.

    En general, mantener la lógica de la aplicación clara y concisa hará que sea más fácil mantenerla y depurarla, lo cual es el objetivo final de cualquier proyecto de desarrollo.

Comments are closed.