por que se inscrever não pode entrar em ação. Não sei se o que segue é uma boa ideia
listeners.slice().forEach(listener => listener())
//to
listeners.slice().forEach(listener => listener(action))
Os assinantes devem reagir ao novo estado, não ao que aconteceu.
Isso é importante para garantir a consistência.
Você pode usar middleware personalizado para contorná-lo.
Por favor, veja:
https://github.com/rackt/redux/issues/347
https://github.com/rackt/redux/issues/580
No meu caso, a ação é enviada ao servidor após o "envio" ser feito. O servidor tem o mesmo armazenamento Redux do cliente e a ação muda o estado do servidor para sincronizar com o estado do cliente.
Nesse caso, é conveniente se "ouvinte de inscrição" receber o parâmetro de ação.
Claro, isso pode ser feito usando middleware. Mas pode ser melhor se esta for uma forma padrão de "subscrever ouvinte".
Ao preparar o mesmo armazenamento Redux no servidor e também no cliente, a manipulação de estado do lado do servidor torna-se a mesma que a do cliente.
Neste conceito, a ação é um sincronizador de estados que é transferido entre todos os clientes conectados incluindo o servidor.
Esse é exatamente o caso de uso do middleware.
Comentários muito úteis
Os assinantes devem reagir ao novo estado, não ao que aconteceu.
Isso é importante para garantir a consistência.
Você pode usar middleware personalizado para contorná-lo.
Por favor, veja:
https://github.com/rackt/redux/issues/347
https://github.com/rackt/redux/issues/580