Redux está diseñado principalmente para el "estado de la aplicación". Es decir, cualquier cosa relacionada con la lógica de su aplicación. La vista construida sobre él es un reflejo de ese estado, pero no tiene que usar exclusivamente ese contenedor de estado para todo lo que hace.
Simplemente haga estas preguntas: ¿Es este estado importante para el resto de la aplicación? ¿Otras partes de la aplicación se comportarán de manera diferente en función de ese estado? En muchos casos menores, ese no será el caso. Tome un menú desplegable: el hecho de que esté abierto o cerrado probablemente no tendrá ningún efecto en otras partes de la aplicación. Por lo tanto, conectarlo a su tienda probablemente sea excesivo. Ciertamente es una opción válida, pero en realidad no le reporta ningún beneficio. Es mejor usarlo this.state
y terminarlo .
En su ejemplo particular, ¿el color de ese botón está activado para hacer alguna diferencia en otras partes de la aplicación? Si se trata de una especie de activación / desactivación global para la mayor parte de su aplicación, definitivamente pertenece a la tienda. Pero si solo está cambiando el color de un botón cuando hace clic en el botón, puede dejar el estado de color definido localmente. La acción de hacer clic en el botón puede tener otros efectos que requieran un envío de acción, pero eso es independiente de la simple pregunta de qué color debería ser.
En general, intente mantener el estado de su aplicación lo más pequeño posible. No tienes que meter todo ahí. Hágalo cuando sea necesario o tiene mucho sentido mantener algo allí. O si le facilita la vida al usar Dev Tools. Pero no sobrecargue demasiado su importancia.