Redux destina-se principalmente ao "estado do aplicativo". Ou seja, qualquer coisa relacionada à lógica do seu aplicativo. A visualização construída sobre ele é um reflexo desse estado, mas não precisa usar exclusivamente esse contêiner de estado para tudo o que faz.
Basta fazer estas perguntas: Esse estado é importante para o restante do aplicativo? As outras partes do aplicativo se comportarão de maneira diferente com base nesse estado? Em muitos casos menores, esse não será o caso. Faça um menu suspenso: O fato de estar aberto ou fechado provavelmente não afetará outras partes do aplicativo. Portanto, conectá-lo à sua loja provavelmente é um exagero. Certamente é uma opção válida, mas não lhe traz nenhum benefício. É melhor você usar this.state
e encerrar o dia.
Em seu exemplo específico, a cor desse botão é alternada para fazer alguma diferença em outras partes do aplicativo? Se for algum tipo de botão liga / desliga global para a maior parte do seu aplicativo, ele definitivamente pertence à loja. Mas se você estiver apenas alternando a cor de um botão ao clicar no botão, poderá deixar o estado da cor definida localmente. A ação de clicar no botão pode ter outros efeitos que requerem um despacho de ação, mas isso é diferente da simples questão de qual cor deveria ser.
Em geral, tente manter o estado do seu aplicativo o menor possível. Você não tem que enfiar tudo lá. Faça-o quando for necessário ou faz muito sentido manter algo lá. Ou se torna sua vida mais fácil ao usar Dev Tools. Mas não sobrecarregue demais sua importância.