Ho un'app di GUI basata su react/redux. Come parte della vista c'è un "indicatore" che reagisce alla componente che vorrei lampeggiare, e il lampeggio è fatto con un'animazione CSS3 (frame di animazione). La funzione membro indicator.blink()
del componente react viene richiamata per far lampeggiare l'indicatore (in pratica rimuove la classe blink dall'elemento DOM, quindi la aggiunge nuovamente 1ms più tardi, come un trucco per aggirare il fatto che non vi è alcuna "riavvio" api per un'animazione CSS3).Come passare l'evento da Redux a Reagire?
In determinate azioni che si verificano nel framework di ridiffusione (possono essere dei thunk se necessario), desidero chiamare questa funzione blink()
nella vista di risposta. Il modo migliore per farlo?
E non mi sembra giusto per avere l'azione Redux modificare lo stato applicazione, quindi l'indicatore di elemento si legano ad una delle variabili di stato come prop
, dato che non è in realtà uno stato, ma un evento istantaneo. Ma non conosco altro modo per ottenere un'azione di ridondanza per cambiare un componente che reagisce.
E se ci fosse una tale animazione di "riavvio" nei CSS3? In tale scenario, non ci sarebbe bisogno di un 'STOP_BLINK', e l'impostazione ripetuta di' isBlinking' su 'true' non direbbe nulla al componente React in modo che possa agire e riavviare l'animazione. Fondamentalmente, sto cercando di trovare un caso d'uso in cui un'azione di Redux deve inviare un evento alla vista React, in cui lo stato di modifica non ha senso perché l'elemento è "senza tempo" (cioè un evento). Sto pensando l'impossibile/improbabile? – gbmhunter
Se si dispone di questa situazione, è necessario aggirare il flusso di Redux e React e farlo in modo imperativo. Non proprio correlato a Redux. Esegui un effetto imperativo nel punto in cui spari l'azione. –
Un effetto imperativo? È questo un modo di comunicare da un'azione Redux a un componente React?Ho dato un'occhiata a ottenere l'accesso ai componenti React dall'interno di un'azione, ma non sembrava facile (cioè salvando ciò che 'React.render()' restituisce a una variabile globale, e quindi usando una funzione di utilità di test React per scavare un componente figlio). – gbmhunter